<form method="POST" action="{{ url("/post/{$article->id}/comment") }}">>
Route::post('/post/{article}/comment', 'CommentController@store');
public function store(Article $article)
{
$comment = $article->comment->create([
'body' => request('body'),
]);
return back();
}
`@extends('master')
@section('content')
<!-- Example row of columns -->
<div class="container">
<h1> {{ $articles->title }} </h1>
<p> {{ $articles->body }} </p>
<hr></hr>
<div class="comment">
<ul class="list-group">
@foreach($articles->comments as $comment)
<li class="list-group-item">
<strong>
{{ $comment->created_at->diffForHumans()}} :
</strong>
{{ $comment->body }}
</li>
@endforeach
</ul>
</div>
<!-- Here is comment form -->
<hr>
<div class="card">
<div class="card-block">
<form method="POST" action="{{ url ("/post/{$article->id}/comment") }}">>
{{ csrf_field() }}
<div class="form-group">
<textarea name="body" placeholder="your comment here." class="form-control"> </textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Add Comment</button>
</div>
</form>
</div>
@include('partials.errors')
</div>
</div>
@endsection`
当我试图在文章I上添加评论时,会收到如下错误:
> Undefined variable: article (View: C:\xampp7\htdocs\Lara\resources\views\article\show.blade.php)
这有什么不对吗?帮帮我。提前致谢
答案 0 :(得分:0)
您似乎没有通过$article
查看。你还没有包含代码,但你有类似的地方:
return view('article.show');
而你应该:
return view('article.show', compact('article'));
所以最后控制器中的show
方法看起来应该是这样的:
public function show(Article $article)
{
return view('article.show', compact('article'));
}
答案 1 :(得分:0)
因为您正在调用您的文章$articles
(复数),实际上它只是一篇文章。
将$articles
更改为$article
,然后在您有文章的视图中更改它,例如$articles->body
。在表单操作中使用它时,它将是正确的。