@saybye720 實際上就是 _token 的問題沒錯,User表update沒錯是因為其更新流程和UserProfile不一樣:
User是繼承於Model,其update方法是
public function update(array $attributes = []){
if (! $this->exists) {
return false;
}
return $this->fill($attributes)->save();
}
重點在於fill($attributes)
這個方法會檢查傳進去的值是否fillable
,就是你在User
Model裡設置的那些
但是,$user->UserProfile()
回傳的是HasOne
類型的Object,其更新方法太多層,就不詳述,不過裡面並沒有對你傳進去的$attributes
進行過濾,所以不管你fillable
打什麼,都不會對他造成影響,最後導致你傳進去的所有欄位都會被更新,自然_token
也被當成需要更新的欄位,而UserProfile
並沒有這欄位也就錯誤了。