遵循CakePHP中的系统

时间:2014-02-19 11:56:29

标签: php cakephp

基本上我想在CakePHP中实现像Twitter和其他系统一样的跟随系统。

我有一个包含所有用户信息的用户表。在每个用户的配置文件上,是一个跟随按钮,一旦点击,必须在“跟随”表中创建一个新记录,其中包含user_id,即用户的ID和follower_id,即登录用户的ID。因此,每当用户点击关注个人资料时,它都应该在“跟随”中创建一个新记录。

我看到了这样的一些问题,但没有找到完美而有用的答案。

提前致谢。

2 个答案:

答案 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获取)之间执行实际跟随;最后使用调用控制器方法的跟随按钮添加视图。

继续尝试,如果你遇到一些困难,分享你尝试过的东西,我们就能帮助你。