类stdClass的对象无法转换为字符串|数据透视表

时间:2014-09-03 09:33:40

标签: php laravel-4

我想显示与特定类别相关联的帖子。

我有一个预先定义的类别表,每个类别都有一个唯一的ID。

我有一个帖子表,我有一个数据透视表,用于链接两个名为category_post的表。

数据透视表包含category_id& POST_ID。

我想查询数据透视表以恢复与特定category_id相关联的所有post_id。

我的控制器采用所选类别的ID参数:

public function getCategoryPost($id)
    {


        $selectedID = DB::table('category_post')->select(['post_id'])->where('category_id', '=', $id)->get();
        $posts = Post::find($selectedID);

        return View::make('posts.category')->with('posts', $posts);

    }

现在我想在刀片中显示结果,但只显示帖子的标题:

        @foreach($posts as $post)
        class="post-title"> {{$post->title}} 
        @endforeach   

这就是我所拥有的,我得到以下错误“类stdClass的对象无法转换为字符串”

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

首先你应该重建一下你的查询使用Eloquent我建议:

$selectedID = CategoryPost::where('category_id', '=', $id)
->select('post_id')
->first();

由于你在这里只获取一个结果,你应该使用FIRST,而不是GET函数,因为GET会返回一个数组!如果您坚持使用Get,则应将代码更改为:

 $posts = Post::find($selectedID[0]); // the first element of the response array

在将结果和查询返回到视图之前,您应该对其进行汇总,然后查看问题所在! :)问候并告诉我你是否需要更多的帮助!