试图在laravel中获得非对象的属性

时间:2015-08-31 05:42:24

标签: php laravel laravel-5 laravel-5.1

我有以下代码

在控制器中

  public function ViewPost($id)
        {
             $viewpost= Post::find($id);
              return view('Guest.viewpost', ['viewpost'=>$viewpost]);
        }

在视图中

  @foreach($viewpost as $val)

        <br>
        Post title=
        <a href="viewpost/{{$val->id}}" >{{$val->post_title}}</a>
      <br>
        Post content={{$val->post_content}}
        <br>  <br>
        Featured Image=<img src="{{$val->featured_image}}" height="150" width="150">
      @endforeach

但是上面的代码会抛出一个错误Trying to get property of non-object.所以我尝试了以下方式

 $val['post_title'];

上面的代码不会抛出错误也不会显示输出。

如果我在控制器中打印它会显示输出,但如果我打印它会在视图中显示错误

 print_r($viewpost);

我正在使用laravel 5.1.任何人都可以告诉我们我做错了什么吗?
谢谢。

更新

能够显示数据图像无法加载。

<img src="{{$val->featured_image}}" height="150" width="150">

<img src="uploads/penguin.jpg">

在展示视图中同样适用

1 个答案:

答案 0 :(得分:1)

像这样更新您的控制器

public function ViewPost($id)
{
     $viewpost= Post::find($id)->first();
      return view('Guest.viewpost', ['viewpost'=>$viewpost]);
}

public function ViewPost($id)
{
     $viewpost= Post::find($id)->get();
      return view('Guest.viewpost', ['viewpost'=>$viewpost]);
}

如果你还面临这个问题,请回来。!