从相关表cakephp中检索数据

时间:2014-04-24 14:46:55

标签: mysql cakephp

我有两张桌子,照片和用户。每个用户应该能够添加多个图像,因此'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未知表   '照片'

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

你的问题在这里 - 'fields' => array('User.*', 'Photo.*'),。您要求提供照片字段,但在用户表格中不可用...

试试这个 -

 $listings = $this->User->find('all', array(
                                       'contain' => array(
                                              'Photo'
                                            )
                                     )
                                );

Nunser已经提出建议......将public $BelongsTo = 'User';更改为public $belongsTo = array('User');