基本上我想在CakePHP中实现像Twitter和其他系统一样的跟随系统。
我有一个包含所有用户信息的用户表。在每个用户的配置文件上,是一个跟随按钮,一旦点击,必须在“跟随”表中创建一个新记录,其中包含user_id,即用户的ID和follower_id,即登录用户的ID。因此,每当用户点击关注个人资料时,它都应该在“跟随”中创建一个新记录。
我看到了这样的一些问题,但没有找到完美而有用的答案。
提前致谢。
答案 0 :(得分:2)
类似的东西:
用户模型
public $hasAndBelongsToMany = array(
'Follower' => array(
'className' => 'User',
'joinTable' => 'your_join_table',
'foreignKey' => 'following_id',
'associationForeignKey' => 'followed_id',
'unique' => 'keepExisting' // If you do not want records to be deleted
),
'Followed' => array(
'className' => 'User',
'joinTable' => 'your_join_table',
'foreignKey' => 'followed_id',
'associationForeignKey' => 'following_id',
'unique' => 'keepExisting' // If you do not want records to be deleted
)
)
假设您的$ user_id = 2是当前登录的用户而$ followed_id = 10是他想要关注的用户,那么您必须创建一个类似
的数组$data = array(
'User' => array(
'id' => 2,
),
'Followed' => array(
'Followed' => array(
0 => 10,
1 => 12 // if you want you can store 2 records at the same time,
// i.e. you have a checkbox for every user
//and the follower can check multiple cheboxes before submit
)
)
)
然后
$this->User->saveAll($data)
答案 1 :(得分:0)
如果你有工作流程,那么没有什么能阻止你尝试实现它。
创建User
模型,Follows
模型与User
具有ManyToMany关系;实现一个控制器,在当前用户(取自Auth
组件)和要跟踪的用户(最有可能从URL获取)之间执行实际跟随;最后使用调用控制器方法的跟随按钮添加视图。
继续尝试,如果你遇到一些困难,分享你尝试过的东西,我们就能帮助你。