该集合实例上不存在属性[title]。拉拉夫5.6

时间:2018-08-17 09:41:48

标签: laravel

大家好,我需要一些帮助 我只是从数据库中获取帖子,并在视图中显示它们。当我单击帖子以获取详细信息时,它给了我上面的错误。我的详细信息页面视图和控制器代码如下。有问题

    public function show(Post $post)
        {
           **$postDetail =   Post::find($post);**       
           **//return $postDetail;**// this returns the single post on my view 
but when I use the following line and display the view it returns the error which is my question title.
           **return view('posts.show')->with('postDetail', $postDetail);**

        }

我的帖子上的代码。显示视图如下

<div class="postheading">
            <h1>{{$postDetail->title}}</h1>

2 个答案:

答案 0 :(得分:0)

Post $post将获得整个表行,而不是使用$postDetail = Post::find($post->id);获得后表数据 或更改显示路线的方法($ id)

答案 1 :(得分:0)

查看

    <div class="postheading">
        <h1>{{$postDetail->title}}</h1>
     </div>   

控制器

    public function show($postid)
    {
        $postDetail = Post::find($postid);
        // this returns the single post on my view 
        but when I use the following line and display the view it returns the error which is my question title.
       return view('posts.show')->with('postDetail', $postDetail);

    }

路线:

    //  call in web http://siteurl.org/post/1

    Route::get('post/{$id}','PostController@show');

差异:

  • show($postid)中,这将从id中获得一条帖子。类似于搜索功能。当您检索单个记录时。此方法有效。

  • show(Post $post)中,这将从Post对象获得一条帖子。它基于对象。

  

获取所有帖子的方式

转到您的控制器,将其写入函数

public function showAllPost()
{
  $posts = \App\Post::all();

  return view('yourview', ['posts' => $posts]);
}

为了显示它

@foreach($posts as $post)
  {{ $post->yourColumnName }}
@endforeach