我上课了用户和公司:
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]"
答案 0 :(得分:0)
'firm_id'将在您的联接表中,而不是您的公司模型。
如果您想要显示当前公司的ID,您应该只需要这个
<td> <?php echo $firm['Firm']['id']; ?> </td>
答案 1 :(得分:0)
您需要像这样搜索:
$this->set('firms',$this->Firm->find('all',array('conditions'=>array('Firm.user_id'=>'5'))));
这应该会给你想要的结果。
修改强>
如果您想将模型与“拥有且属于许多”关系相关联,您需要编写这样的2个模型:
//user.php
class User extends AppModel {
var $name = 'User';
var $hasAndBelongsToMany = 'Firm';
}
//firm.php
class Firmextends AppModel {
var $name = 'Firm';
var $hasAndBelongsToMany = 'User';
}
要了解如何使用该关联,请阅读HABTM (has and belongs to many) relationships的手册部分。