CakePHP找到相关的模型数据

问题描述

| 我得到了用户和公司类:
class Firm extends AppModel {
    var $name = \'Firm\';
    var $belongsTo = \'User\';
}
和:
class User extends AppModel {
    var $name = \'User\';
    var $hasMany =\'Post\';
    var $hasAndBelongsToMany = \'Firm\';
}
一切正常,但是如果用户ID =例如5,如何搜索公司? 我用了:
$this->set(\'firms\',$this->Firm->User->find(\'all\',array(\'conditions\'=>array(\'User.id\'=>\'5\'))));
我认为:
<table>
    <tr>
        <th>Firma</th>
    </tr>
    <?PHP foreach($firms as $firm): ?>
    <tr>
        <td><?PHP echo $firm [\'Firm\'][\'firm_id\']; ?></td>  //line 9
    </tr>
    <?PHP endforeach; ?>
</table>
但是当我进入视图时,我得到了错误
\"Notice (8): Undefined index: firm_id [APP\\views\\firms\\wylistuj.ctp,line 9]\"
    

解决方法

        \'firm_id \'将在您的联接表中,而不是您的公司模型中。 如果您希望显示当前公司的ID,则只需要这个
<td> <?php echo $firm[\'Firm\'][\'id\']; ?> </td>
    ,        您需要这样搜索:
$this->set(\'firms\',$this->Firm->find(\'all\',array(\'conditions\'=>array(\'Firm.user_id\'=>\'5\'))));
这应该给您您想要的结果。 编辑: 如果您想将模型与“具有并属于许多”关系相关联,则需要这样编写两个模型:
//user.php
class User extends AppModel {
    var $name = \'User\';
    var $hasAndBelongsToMany = \'Firm\';
}

//firm.php
class Firmextends AppModel {
    var $name = \'Firm\';
    var $hasAndBelongsToMany = \'User\';
}
若要了解如何使用该关联,请阅读HABTM(已有并属于许多)关系的手册部分。