问题描述
|
我得到了用户和公司类:
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(已有并属于许多)关系的手册部分。