有没有办法从CakePHP中的特定表中选择所有字段? 如下所示:
$this->Model1->find('first',
array('fields' => 'Model2.*',
'conditions' => 'Model1.id = Model2.Model1_id'),
'contain' => array());
我一直在寻找这个地方,但却找不到任何相关的东西。 我有点希望我不必输入Model2的所有字段:(
原谅我的忠诚,我刚开始学习蛋糕。非常感谢提前!
答案 0 :(得分:1)
你没有。您拥有的语法(意味着Model2.*
部分)将起作用,因为根本不会定义任何字段。默认情况下,它们都已返回。
find
电话是否有效。为了从Model1
获取数据,在Model2
上执行查找似乎很尴尬。正如Henri在评论中提到的那样,最好在Model2
上进行查找。
答案 1 :(得分:1)
对于某些驱动程序,通配符将无法按预期工作。所以你需要整个字段列表。
$ds = $this->Model1->getDataSource();
$this->Model1->find('first', array(
'fields' => $ds->fields($this->Model1),
'conditions' => 'Model1.id = Model2.Model1_id',
'contain' => array()
));
答案 2 :(得分:0)
你可以试试这个
$this->Model1->find('first',
array(
'fields'=>'Model2.*',
'joins' => array(
array(
'table'=>'table',
'alias'=>'Model2',
//'type'=>'LEFT',
'conditions'=>array(
"Model2.model1_id = Model1.id",
),
),
),
'conditions' => array('Model1.somefields' =>'1'
)
) );