用laravel评论功能,哪里出错?

时间:2016-03-14 09:02:23

标签: php laravel blade

我正在使用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

注释功能,我在数据库中保存注释无效。

感谢您的帮助!

1 个答案:

答案 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();