【问题标题】:Laravel - How to export two tables with relationshipsLaravel - 如何导出两个有关系的表
【发布时间】:2019-06-03 08:51:03
【问题描述】:

我想使用 Laravel 5.8 导出到 Excel

"maatwebsite/excel": "^3.1"

型号:

  1. 用户奖励 (user_rewards)
  2. 用户(用户)

我有这个代码

        $points = DB::table("user_rewards")
         ->select("user_rewards.user_id", "users.username","user_rewards.user_id", DB::raw("SUM(user_rewards.points) as no_game"))
        ->join("users","users.id","=","user_rewards.user_id")
         ->groupBy("users.id","users.username","user_rewards.user_id")
         ->orderByRaw('SUM(user_rewards.points) DESC');

但是想把它转换成这样的东西

出口

class GamesExport implements FromQuery, WithHeadings, ShouldAutoSize, WithEvents
{  
    use Exportable;
    /**
    * @return \Illuminate\Support\Collection
    */
    public function query()
    {
        return User::query()->select('name', 'username', 'created_at');
        ...
    }
}

如何使用关系导出两个表

查询()->选择

或转换

DB::raw 以上为

查询()->选择

如上图

【问题讨论】:

    标签: laravel maatwebsite-excel


    【解决方案1】:

    您可以尝试使用with 预先加载关系。

    https://laravel.com/docs/5.8/eloquent-relationships#eager-loading

    这样它会是这样的: User::with('userRewards')(假设userRewards是关系名称)

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多