2017-10-07 64 views
0

我有posts,usersfavorites表。 比如我做一些后收藏与3这样的ID的用户:如何检查一些帖子是否被laravel用户喜欢

User::find(3)->favorites()->attach($post->id); 

,如果用户发送的请求两次,它将插入这个喜爱这个post_iduser_id两次。 我想检查一个帖子是否不被该用户喜欢,然后将记录保存在数据库中。 或者如果某个帖子被收藏了,那么就会使其不合适。 我该如何与雄辩的关系做到这一点? 我有User,Post型号。

+0

使用查询方法https://开头laravel .COM /文档/ 5.5 /查询 –

回答

3

你可以使用toggle()

User::find(3)->favorites()->toggle($post->id); 

本想它,如果它不喜欢,不像它,如果它是。

如果你只是想要的功能不是重复喜欢在餐桌上,只需使用syncWithoutDetaching

User::find(3)->favorites()->syncWithoutDetaching([$post->id]); 

您的用户模型把这样的:

class User extends Model { 

    public function like($postId){ 
    $this->favorites()->syncWithoutDetaching([$post->id]); 
    } 

    public function unlike($postId){ 
    $this->favorites()->detach([$post->id]); 
    } 
} 
相关问题