0
我是一个HABTM关系,其输出如下,我想要做的是cakephp返回一个“列表”只有“friend.id”和“friend.company_name”并排除“用户”。HABTM查找,如何过滤结果
我花了很长时间研究如何做到这一点,并不能得到它的工作。
我在用户控制器中的“搜索方法”我想我需要使用可容忍的行为,但我不知道该怎么做。我设法让“朋友”结果只显示2个字段,但我需要摆脱“用户”结果。我该怎么做呢?
该关系在用户模型文件中定义;在用户控制器
var $hasAndBelongsToMany = array(
'Friend' => array(
'joinTable' => 'retailerrelationships',
'className' => 'User',
'foreignKey' => 'retailer_id',
'associationForeignKey' => 'supplier_id'
)
);
用户操作:
$this->User->Behaviors->attach('Containable');
$users=$this->User->find('all',array('conditions'=>array('User.id'=>$this->Auth->user('id')),'contain'=>array('Friend.id','Friend.company_name')));
$this->set('users' ,$users);
调试输出
Array
(
[0] => Array
(
[User] => Array
(
[id] => 104
[username] => admin
)
[Friend] => Array
(
[0] => Array
(
[id] => 107
[company_name] => carskitchens
[Retailerrelationship] => Array
(
[id] => 12
[retailer_id] => 104
[supplier_id] => 107
[created] => 2012-03-28 10:14:23
[modified] => 2012-03-28 10:14:23
)
)
[1] => Array
(
[id] => 112
[company_name] => mr manufacturer
[Retailerrelationship] => Array
(
[id] => 13
[retailer_id] => 104
[supplier_id] => 112
[created] => 2012-03-28 11:26:52
[modified] => 2012-03-28 11:26:52
)
)
)
)
)
这对我没有工作:( – 2012-03-28 18:10:25
你可以进入更详细的?首先,我用',而不是你'$ users'变量$ results'。此外,您还需要分配所以'$ options = Set :: combine ...'等等。你是否调试过输出来看看它给了你什么? – jeremyharris 2012-03-28 18:36:12
其实你是对的我的不好我把我的发现改为“第一”,它的工作感谢 – 2012-03-28 18:36:56