试图获取非对象的属性

时间:2014-08-28 13:39:05

标签: php laravel-4

我有以下代码片段,应该返回帖子的内容。

我的观点:

 @foreach($posts as $post)
 <h2 class="post-title"> {{$post->title}} </h2>
 <p> {{ $post->content_posts()->first()}} </p>
 @endforeach

返回ENTIRE对象,

只要您只想要对象的内容(或任何其他属性)部分就会抛出“试图获取非对象的属性”错误

包含错误的视图:

 @foreach($posts as $post)
 <h2 class="post-title"> {{$post->title}} </h2>
 <p> {{ $post->content_posts()->first()->content}} </p>
 @endforeach

Controller如下所示:

    public function getAllPost(){   
    $posts = Post::all();
    return View::make('posts.allposts', ['posts' => $posts]);}

模型关系如下:

这是Post模型:

    public function content_posts(){
    return $this-> hasMany('ContentPost');}

ContentPost模型:

    public function post(){
    return $this-> belongsTo('Post');}

我的模型,控制器或视图中是否存在错误?

1 个答案:

答案 0 :(得分:0)

尝试使用;

$post->content_posts()->first()['content'] 

确保在显示您希望阻止此错误再次发生的内容之前检查数据$ post-&gt; content_posts() - &gt; first()。