可以';t转换Eloquent查询的结果


Can't transform results of Eloquent query

我正在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

如果出现这样的错误,可能需要更改:

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

进入:

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

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