2017-10-07 114 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]); 
    } 
} 
相關問題