0

我正在编写一个销售汽车的应用程序,所以我有一个名为 Anuncio 的模型(显示汽车的部分,它的葡萄牙语我不知道翻译它)有一个 Carmodel,而 Carmodel 有一个 CarMake。

在 anuncio 控制器上,我想加载所有 Makes 来填充组合框,所以我正在使用它:

$makes = $this->Anuncio->Carmodel->CarMake->find('list');

它工作正常,但该发现带来了所有品牌,我只想带来至少记录了一个 Carmodel 的品牌(类似于 INNER JOIN 而不是 LEFT JOIN)。

谢谢

4

1 回答 1

0

您好,您没有提供任何代码,所以我不会给您确切的答案,但我会写下如何完成。

您应该覆盖模型的列表方法,特别是列表操作

class Carmodel extends AppModel {
var $belongsTo = array('User');

function find($type, $queryData = array()) {
switch ($type) {
  case 'list':
    //do the query that joins tables in way you want
  default:
    return parent::find($type, $queryData);
 }

} }

更多信息可以在http://debuggable.com/posts/implementing-different-types-for-cakes-modelfind-method:485030de-4778-456e-8400-44d84834cda3上找到

我希望它可以帮助你。您可以在此方法中创建自己的 $type,您不需要覆盖列表操作,但您可以创建自己的方法或在Carmodel中创建新方法

于 2013-05-25T06:47:24.737 回答