CakePHP中新HABTM的未定义索引

CakePHP中新HABTM的未定义索引,php,mysql,cakephp,Php,Mysql,Cakephp,在CakePHP web应用程序中,我正在将关系从belongsTo更改为HABTM 最初我们有一个部门表和一个用户表。department表可以包含许多用户;但是一个用户只能属于一个部门 现在,我们希望用户能够属于多个部门。我创建了一个名为departments_users的中间表,并将其填充满了数据 我已经修改了用户模型,现在在用户视图中出现以下错误: Notice (8): Undefined index: Department [APP/views/users/index.ctp, li

在CakePHP web应用程序中,我正在将关系从belongsTo更改为HABTM

最初我们有一个部门表和一个用户表。department表可以包含许多用户;但是一个用户只能属于一个部门

现在,我们希望用户能够属于多个部门。我创建了一个名为departments_users的中间表,并将其填充满了数据

我已经修改了用户模型,现在在用户视图中出现以下错误:

Notice (8): Undefined index: Department [APP/views/users/index.ctp, line 25]
这是视图中给出错误的代码行:

<?php 
echo $this->Html->link($user['Department']['name'], 
array('controller' => 'departments', 'action' => 'view', $user['Department']['id'])
); 
?>
然后我在$hasandbelongtomany关系中添加了以下代码:

'Department' => array(
    'className'  => 'Department',
    'foreignKey' => 'department_id'
),
'Department' => array(
    'className'             => 'Department',
    'joinTable'             => 'departments_users',
    'foreignKey'            => 'user_id',
    'associationForeignKey' => 'department_id',
    'unique'                => true
)

有人能告诉我我能做些什么来让这一切顺利吗?谢谢。

感谢这篇文章:我意识到我的视图代码中可能需要一个foreach循环来显示我的HABTM关系。所以我把我的视图代码改为:但是我仍然得到相同的错误;后跟为ForEach提供的无效参数。您的评论方向正确。但是我们从错误消息中知道没有定义$user['Department']。我要做的是使用print_r$user或var_dump或其他任何东西,看看a您的代码是否实际获取了用户部门列表,b是什么格式,这样您就可以计算出您应该循环的内容。谢谢您的回复。我做了蛋糕的调试$user;果不其然,这个部门并不存在。我用git恢复了更改,发现它当然以前就在那里。所以我的新的HABTM关系没有被控制员发现。控制器使用paginate并调用视图。我确信我需要在Habinate for HABTM中执行一些不同的操作。您是否尝试过将'recursive'=>1添加到分页器设置中?有关详细信息,请参阅。感谢设置“递归”=>1!之前已将其设置为0。现在可以了!如果你想把你的评论作为答案,我会接受的。再次感谢!