无法转换Eloquent查询的结果

时间:2014-10-04 13:13:08

标签: php laravel laravel-4 eloquent

我正在Laravel中构建一个API来学习如何做这样的事情。我正在遵循Laracasts课程来做这件事,但是我想为自己做的部分遇到一些麻烦。

目前,我的控制器中有此功能。它从两个表中获取数据,然后返回它。

public function lesson($userid)
{

    $lessons = DB::table('lessons')
                ->join('userlessons', 'lessons.id', '=', 'userlessons.lessonsid')
                ->select('lessons.name', 'lessons.seen')
                ->where('userlessons.userid','=', $userid)
                ->get();

    return $this->respondWithPagination($lessons, [

        'data' => $this->LessonTransformer->transformCollection($lessons)

    ]);

}

LessonTransformer就是这样:

class LessonTransformer extends Transformer 
{

    public function transformCollection($items)
    {

        return array_map([$this, 'transform'], $items);

    }

    public function transform($item)
    {

        return [

            'name' => $item['name'],
            'seen' => (bool) $item['seen']

        ];

    }

}

我尝试了很多解决方案,有些聪明,有些愚蠢。但我不断收到此错误:Cannot use object of type stdClass as array

1 个答案:

答案 0 :(得分:0)

如果您收到此类错误,可能需要更改:

return [    
    'name' => $item['name'],
    'seen' => (bool) $item['seen']    
];

成:

return [    
    'name' => $item->name,
    'seen' => (bool) $item->seen
];

但是您还没有显示出现哪个行错误,所以它只是猜测