【发布时间】:2014-07-25 20:32:16
【问题描述】:
我试图在关系中显示第三个表中的一个字段,在检查了这里的帖子和文档之后,我仍然卡住了。我有 3 个模型都以某种方式相关。我在这里找到了类似的帖子,但我仍然没有让它工作。如果我在文档中的某个地方错过了这个,我很抱歉,但我已经阅读了很多并且尝试了很多。我现在猜测太多了,所以我需要帮助。
1)Tutorsession - belongsto teachers,
2) Teacher -has 1 user,hasmany tutorsessions
3) User- has 1 teacher, //////I want to display a field from this table given I display tutorsessions
In controller
$this->set('tutor',
$this->Tutorsession->find('first',
array(
'conditions' => array('Teacher.user_id' => $id),
'contain' => 'User.username'
)
)
); //////////no error but no results
from view echo '<td>'. $item['User']['username'].'</td>'; ///////error user undefined
如果在 findall 上设置模型,tutorsession 会自动从教师表而不是用户表中获取行。
我想显示用户表中的用户名。我显示了导师会话表,然后我可以显示带有模型关联的教师表,但我不能从教师表转到用户表以从用户 ID 中获取用户名作为公共字段。我检查了下面的文档,但我不确定为什么我的代码无法显示用户表中的用户名。
http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html http://book.cakephp.org/2.0/en/models/retrieving-your-data.html
update: here are the models
class User extends AppModel {
public $hasOne = array(
'Teacher' => array(
'className' => 'Teacher',
'dependent' => true
)
class Tutorsession extends AppModel
{
public $name='Tutorsession';
public $belongsTo = array(
'Teacher' => array(
'className' => 'Teacher',
'foreignKey' => 'teacher_id'
)
class Teacher extends AppModel
{
public $name='Teacher';
public $hasMany = array('Tutorsession');
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id'
)
);
【问题讨论】:
-
尝试先调试 $item。调试($项目);然后将结果粘贴到您的问题中,以便我们为您提供帮助。您可以在 quesry 之前添加控制器, $this->Tutorsession->recursive = 2;通过结果,您可以看到如何访问它。
-
数组非常大,所以我不知道如何将它放在这里但是它没有显示用户表中的任何内容。