我有两张桌子,照片和用户。每个用户应该能够添加多个图像,因此'photos'表有一个user_id字段,这是我的用户模型:
class User extends AppModel {
public $actsAs = array('Containable');
public $hasOne = array('Product');
public $hasMany = array('Children'=>array(
'className'=>'User',
'foreignKey'=>'parent_id'
),
'Image'=>array(
'className'=>'Image',
'foreignKey'=>'user_id'
));
这是我的图像模型:
class Image extends AppModel {
public $actsAs = array('Containable');
public $BelongsTo = array('User');
}
这是我的UsersController:
public function listings() {
$listings = $this->User->find('all', array(
'contain' => array(
'Image'
)
)
);
$this->set('listings', $listings);
}
图像表中的每个图像都有一个url字段,因此就是images.url。我想要做的是从该表中检索所有URL到users / listing视图。
上面的代码给出了错误:
SQLSTATE [42S02]:找不到基表或视图:1051未知表 '照片'
任何帮助将不胜感激
答案 0 :(得分:0)
你的问题在这里 - 'fields' => array('User.*', 'Photo.*'),
。您要求提供照片字段,但在用户表格中不可用...
试试这个 -
$listings = $this->User->find('all', array(
'contain' => array(
'Photo'
)
)
);
Nunser已经提出建议......将public $BelongsTo = 'User';
更改为public $belongsTo = array('User');