這是錯誤在 null 上呼叫成員函式 comments(),在模型中給出關系仍然顯示此錯誤文章模型
function user() {
return $this->belongsTo(User::class, 'id');
}
public function comments()
{
return $this->hasMany(Comment::class, 'id');
}
評論模型
public function user()
{
return $this->belongsTo(User::class);
}
public function article()
{
return $this->belongsTo('App\Article');
}
這是控制器
public function store(Request $request)
{
//dd($request->all());
Auth::user();
$comment = new Comment;
$comment -> user_id=Auth::user()->id;
$comment-> comment = $request->get('comment');
$article = Article::find($request->article_id);
$article->comments()->save($comment);
return redirect()->back()->with('success', 'your comment,successfully save');
}
這是刀片檔案
<form method="post" action="{{ route('comment.store') }}">
@csrf
<div class="form-group">
<textarea class="form-control" name="comment"></textarea>
<input type="hidden" name="article_id"/>
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" value="Add Comment" />
</div>
</form>
uj5u.com熱心網友回復:
您需要為隱藏欄位設定一個值。
<input type="hidden" name="article_id" value="{{ $article->id }}"/>
其次,為了更容易除錯這些錯誤,使用findOrFail()將確保您的應用程式崩潰,并顯示正確的錯誤訊息。而不是僅僅回傳null。
$article = Article::findOrFail($request->article_id);
編輯
您還將兩種保存方法混合在一起,將文章與評論相關聯或創建新評論。這是我喜歡使用的方法。
$comment = new Comment;
$comment->user_id = Auth::user()->id;
$comment->comment = $request->get('comment');
$article = Article::find($request->article_id);
$comment->article()->associate($article);
$comment->save();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490786.html
標籤:拉拉维尔 laravel-5 雄辩 laravel-4
下一篇:C#中的CSV檔案讀寫
