使用INNER JOIN而不是LEFT JOIN找到'all'

时间:2013-05-25 05:48:25

标签: php cakephp

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

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

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

它的工作正常,但是这个发现带来了所有品牌,我想带来至少有一个Carmodel记录的东西(比如INNER JOIN而非LEFT JOIN)。

感谢

1 个答案:

答案 0 :(得分: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

找到

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

中创建自己的或仅创建新方法