[英]display data from two tables using inner join in cakephp
我正在使用cakephp。 我有两个表的名称和性别。 我要显示性别名称。 但姓名只与男性一起显示。 性别上也有女性,但未被选中。 我的代码如下。
$this->loadModel("names");
$modelmerge = $this->names->bindModel(array
(
'belongsTo' => array
(
'genders' => array
(
'foreignKey' => false,
'conditions' => array
(
'genders.id = names.genders_id'
)
)
)
));
$this->set("names", $this->names->find('all', array('limit' => 10)));
仅在names.genders_id = 1个其余未选中的地方选择此选项。 请指导。
我假设您使用的是CakePHP的旧版本,或者您使用的是错误的命名约定。
$modelmerge = $this->names->bindModel(
array(
'belongsTo' => array(
'genders' => array(
'classname' => 'Genders',
'foreignKey' => genders_id
)
)
)
);
$names = $this->names->find('all', array(
'limit' => 10,
'recursive' => 0
));
$this->set("names", $names);
以下可能会起作用。 但是,我建议您阅读有关Models / DB列 , Model Associations和Containable Behavior的命名 。 这些链接适用于2.x版本,但我认为您可能使用的是1.3或更早版本,因此请参考旧书。
你可以不用bindModel就可以做到
$this->names->find('all',
array(
'limit' => 10,
'joins' =>
array(
array(
'table' => 'genders',
'type' => 'INNER',
'conditions' => array('genders.id = names.genders_id')
),
),
)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.