我正在使用laravel框架创建一个博客。我现在正在做一个评论功能并完成了基本结构。好吧,在我的视图中有一个unifined变量($ comments)的错误,所以我认为我的控制器或路由有一些问题。也许你们中的某个人可以看看它?
评论功能的路线:
Route::post('/comment', ['as' => 'postComment', 'uses' => 'Test\\TestController@comment']);
Route::get('/comment/{id}', ['as' => 'getComment', 'uses' => 'Test\\TestController@getcomment']);
具有注释功能的控制器:
public function comment(CommentRequest $request)
{
Comment::create($request->all());
return redirect()->back();
}
public function getcomment($id)
{
$comments = Comment::where('thread_id', $id);
return view('test.show', [
'comments' => $comments
]);
}
以及我试图获得评论的观点:
@foreach($comments as $comment)
{{ $comment }}
@endforeach
注释功能,我在数据库中保存注释无效。
感谢您的帮助!
答案 0 :(得分:2)
您的代码仅创建查询,您实际上并未执行查询。您应该使用get()
方法执行此操作:
Comment::where('thread_id', $id)->get();
// Result: array of Comment objects.
您的代码:
Comment::where('thread_id', $id);
// Result: Query builder object (Illuminate\Database\Eloquent\Builder).
为了说明,您可以像这样使用查询构建器对象:
// Create the query.
$query = Comment::where('thread_id', $id);
$query->where('content', 'LIKE', '%laravel%');
// Execute the query and return the actual comments.
$comments = $query->get();