Laravel - Как экспортировать две таблицы со связями - PullRequest
0 голосов
/ 03 июня 2019

Я хочу экспортировать в Excel в Laravel 5.8, используя

"maatwebsite / excel": "^ 3.1"

Модели:

  1. UserReward (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');
        ...
    }
}

Как экспортировать две таблицы со связями, используя

query () -> выбрать

или преобразовать

DB :: raw выше

query () -> select

, как показано выше

1 Ответ

1 голос
/ 03 июня 2019

Вы можете попробовать загрузить отношения, используя with.

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

Таким образом, это будет примерно так: User::with('userRewards') (при условии, что userRewards - это имя отношения)

...