CakePHP:找不到子表

时间:2013-06-16 21:13:39

标签: cakephp model find model-associations

我有三个模型:项目,学生和投票。 以下代码是它们之间的关系。在项目模型中:

public $hasMany = array('Student' => array(
    'className' =>'Student',
    'foreignKey'=>'project_id',
    'order' => 'Student.studentName DESC',
),
'Vote' => array(
    'className' =>'Vote',
    'foreignKey'=>'project_id',
));

在学生模型中:

public $belongsTo = array(
    'Project'=>array(
        'className'=>'Project',
        'foreignKey'=>'project_id'
));

在投票模型中:

public $belongsTo = array(
    'Project'=>array(
        'className' => 'Project',
        'foreignKey' => 'id'
));

但是,当我调用此函数时(在Project模型中):

public function getApprovedProjects(){
    $approvedProjects = $this->find('all', array('conditions'=>array(
    'Project.approved' => 1)));
    return $approvedProjects;
}

这是我得到的数据:

Array(
[0] => Array
    (
        [Project] => Array
            (
                [id] => 0
                [projectName] => MyProject
                [semester] => GAME
                [description] => Test project
                [imageLink] => 
                [approved] => 1
            )

        [Student] => Array
            (
            )

        [Vote] => Array
            (
            )

    )

[1] => Array
    (
        [Project] => Array
            (
                [id] => 1
                [projectName] => CRIA STUFF
                [semester] => CRIA
                [description] => Cria project
                [imageLink] => 
                [approved] => 1
            )

        [Student] => Array
            (
            )

        [Vote] => Array
            (
            )

    )
)

它没有找到任何与此项目相关的学生或投票,即使它们存在且我认为应该。知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

好吧,伙计们,我解决了这个问题。

事实证明,Cake不喜欢与id为0的数据进行关联。我的所有其他提取工作都有效,一旦我更改了表中的所有数据,就会产生一个id为' t 0,我的发现有效。

因此,将来不要在id为0的表中添加条目。从1开始。