基本上我在 CakePHP 中有以下模型:
User(id, username)
Photo(id, user_id, path)
我已经建立了以下关系:用户有很多照片。
在一个屏幕上,我想列出用户,并在每个用户旁边显示随机照片。我尝试建立以下关系:
用户 hasOne SamplePhoto (其中 SamplePhoto 只是照片模型)
但是,例如,当用户有两张照片时,他会在列表中列出两次。
基本上我的问题是:您是否可以减少 hasMany 与 hasOne 的关系,而不向上面提供的表模式添加任何字段?我想告诉 cake - 找到 Photo 表中与某个 user_id 匹配的第一条记录。
您还可以使用可控行为 http://book.cakephp.org/view/1323/Containable然后设置类似:
$this->User->find(
'all',
array(
'contains' => array(
'Photo' => array(
'order' => 'rand()',
'limit' => 1
)
)
)
);
然后你应该得到类似的东西
Array
(
[User] => Array
(
[id] => 121
[username] => tom
)
[Photo] => Array
(
[0] => Array
(
[id] => 123
[user_id] => 121
[path] => Somewhere
)
)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)