doyrte8419 2017-01-13 15:22
浏览 23

Laravel Fractal Eager Loading

I'm using Laravel 5.3 with Laravel Fractal. I'm building a forum so when I want to receive all forums I do that like this:

$forums = Forum::with('messages', 'messages.user')
            ->latest()
            ->paginate(10);

        return fractal()
            ->collection($forums)
            ->transformWith(new ForumTransformer())
            ->paginateWith(new IlluminatePaginatorAdapter($forums))
            ->respond();

Then in ForumTransformer I'm doing this:

<?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
        ];
    }
}

Is this a n+1 problem? Or does Laravel use the eager loaded relationship in the ForumTransformer class?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
    • ¥20 软件测试决策法疑问求解答
    • ¥15 win11 23H2删除推荐的项目,支持注册表等
    • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
    • ¥15 qt6.6.3 基于百度云的语音识别 不会改
    • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
    • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
    • ¥15 lingo18勾选global solver求解使用的算法
    • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
    • ¥20 测距传感器数据手册i2c