我正在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
答案 0 :(得分:0)
如果您收到此类错误,可能需要更改:
return [
'name' => $item['name'],
'seen' => (bool) $item['seen']
];
成:
return [
'name' => $item->name,
'seen' => (bool) $item->seen
];
但是您还没有显示出现哪个行错误,所以它只是猜测