我正在爲我的網站創建一個類似的系統。在這個我想要一個用戶只能喜歡一次的帖子。和一個帖子可以被許多用戶喜歡。也有許多用戶可以喜歡很多帖子。喜歡或喜歡有獨特用戶的帖子使用Laravel Eloquent
所以,如果我猜對了,它是一個多對多的關係。
在這種情況下, 我創建下表
...用戶表:
id
name
.... 職位表:
id
post
... post_likes表
id
user id
poost_id
現在我有對
用戶以下模型:
class User extends SentryUserModel {
public function post_likes()
{
return $this->has_many('Post_like', 'id');
}
}
後:
class Post extends Eloquent {
public function post_likes()
{
return $this->has_many('Post_like', 'id');
}
}
post_like:
class Post_like extends Eloquent {
public function posts()
{
return $this->belongs_to('Post', 'post_id');
}
public function users()
{
return $this->belongs_to('User', 'user_id');
}
}
現在,當我要插入到數據庫(post_likes表)我得到叫
Illuminate \ Database \ Eloquent \ MassAssignmentException
user_id
另外我想知道的一個錯誤是有什麼辦法可以嵌入到數據庫就像
$user->like()->save($user); ?????
先謝謝你。快樂的編碼。 \ m/
謝謝你的真棒回答。這很有幫助。但我仍然陷入了這個問題。就像我根據你改變了事情一樣。 '調用未定義的方法Illuminate \ Database \ Query \ Builder :: has_many()'此錯誤顯示在那裏.. 我已經使用了'$ user1-> post_likes() - > save($ debate);' 將其保存到數據庫。我已經使用過'return $ this-> has_many('Post_Like');' PS:是的,我已經改變了這個詞同時張貼在這裏。我已經在我的數據庫中使用了辯論。 –
Yes解決了這個錯誤'調用未定義的方法Illuminate \ Database \ Query \ Builder :: has_many()',因爲我使用的是LARAVEL 4,它應該是'hasMany()'。 但是我有這個錯誤:傳遞給Illuminate \ Database \ Eloquent \ Relations \ HasOneOrMany :: save()的參數1必須是Euminate \ Database \ Eloquent \ Model的一個實例,字符串給出,在E:\ xampp中調用\ htdocs \ ffdd \ app \ controllers \ DebatelikesController.php在第72行,並且定義爲' 並且在第72行代碼像這樣'$ user1-> debate_likes() - > save($ debate);' –
congrats,was會說這可能是你把表名稱而不是類。但是,我很高興能夠提供幫助,如果您使用類似於Model :: create(行值數組)的東西,那麼您可能發生MassAssignmentException的原因就是通過它來代替:$ model = new Model(),$模型 - >保存(),這將爲你插入單數 –