Php 拉威尔分形加载
我用的是Laravel5.3。我正在建立一个论坛,所以当我想接收所有论坛时,我会这样做:Php 拉威尔分形加载,php,laravel,eager-loading,Php,Laravel,Eager Loading,我用的是Laravel5.3。我正在建立一个论坛,所以当我想接收所有论坛时,我会这样做: $forums = Forum::with('messages', 'messages.user') ->latest() ->paginate(10); return fractal() ->collection($forums) ->transformWith(new
$forums = Forum::with('messages', 'messages.user')
->latest()
->paginate(10);
return fractal()
->collection($forums)
->transformWith(new ForumTransformer())
->paginateWith(new IlluminatePaginatorAdapter($forums))
->respond();
然后在ForumTransformer中,我会这样做:
<?php
namespace App\Jenssen\Forums;
use League\Fractal;
class ForumTransformer extends Fractal\TransformerAbstract
{
public function transform(Forum $forum)
{
return [
'id' => $forum->id,
'slug' => $forum->slug,
'name' => $forum->name,
'total_messages' => $forum->messages->count(),
'message_user' => $forum->messages->first()->user->name . ' ' . $forum->messages->first()->user->last_name,
'created_at' => $forum->created_at,
'updated_at' => $forum->updated_at
];
}
}
所以。。。错误消息或意外行为是什么?没有错误消息。只是想知道fractal是否再次进行查询以获取消息和用户。或者它使用的是已经迫不及待加载的信息?哦,不知道有一个,对不起。刚开始读的时候,我以为你在代码和“这是[上面假定缺少错误]一个
n+1
问题吗?”之间缺少一条错误消息。我所发现的只是,但我不能向你保证它被用在ForumTransformer中,正如你想知道的那样…所以。。。错误消息或意外行为是什么?没有错误消息。只是想知道fractal是否再次进行查询以获取消息和用户。或者它使用的是已经迫不及待加载的信息?哦,不知道有一个,对不起。刚开始读的时候,我以为你在代码和“这是[上面假定缺少错误]一个n+1
问题吗?”之间缺少一条错误消息。我所发现的只是,但我不能向你保证它是用在ForumTransformer中的,正如你想知道的。。。