Экспорт данных отношений с использованием Laravel Excel - PullRequest
0 голосов
/ 19 октября 2018

Я использую Laravel Excel для экспорта данных.Я хочу получить все напоминания, прикрепленные к ветеринару, которые доступны через отношение hasManyThrough.

Я попробовал следующий код

RemindersExport.php

public function collection()
{
    $vets = Vet::where('is_active', 1)->get();

    foreach($vets as $vet){
        $reminders = $vet->reminders();
    }

    return $reminders;
}

Контроллер

public function reminders()
{
    return Excel::download(new RemindersExport, 'reminders30days.xlsx');
}

Я получаю следующее сообщение ...

Метод Illuminate \ Database \ Query \ Builder :: allне существует.

1 Ответ

0 голосов
/ 24 июня 2019

Проблема в том, что вы используете метод сбора, но вы должны использовать метод запроса, и laravel-excel выполнит для вас запрос, чтобы вам не приходилось использовать метод get в конце запроса, сначала выследует использовать проблему FromQuery, после этого вам следует заменить метод сбора на метод запроса, написать свой запрос и НЕ добавлять метод get в конце запроса

use Maatwebsite\Excel\Concerns\FromQuery;

class VetExport implements FromQuery{
    public function query()
    {
        $vets = Vet::where('is_active', 1);

        foreach($vets as $vet){
            $reminders = $vet->reminders();
        }

        return $reminders;
    }
}

Надеюсь, это поможет

...