试图获取非对象的属性“ post_titile”

时间:2019-03-03 08:32:47

标签: laravel

这是我的控制器。

public function show(Posts $posts)
{
   $page = Posts::find($posts->id);
   //dd($page);
   return view('web_views.index',['page' => $page]);
}

这是我的查看页面

<h4>{{$page->post_titile}}</h4>

2 个答案:

答案 0 :(得分:1)

我认为最好使用路由模型绑定。

您的路线(如果您正在使用资源路线,则已经完成):

Route::get('posts/{post}', 'PostController@show); // domain.tld/posts/1

您的方法应如下所示:

public function show(Post $post)
{
   return view('web_views.index',compact('post'));
}

您认为:

<h4>{{ $post->post_titile }}</h4>

答案 1 :(得分:0)

可能是$posts->id您正在传递,数据库中没有结果,因此您需要使用if-statement

进行检查
public function show(Posts $posts)
{
    $page = Posts::find($posts->id);
    if($page == null){
        $page = ['post_title' => 'Not Available'];
    }
    return view('web_views.index',['page' => $page]);
}

我认为此错误是由于未在数据库中找到ID的数据。因此,如果上述脚本将传递获取的数据以查看,否则它将把一个项目推入$page数组中。