Как изменить модель для экспорта из ресурса нити в класс экспортераPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как изменить модель для экспорта из ресурса нити в класс экспортера

Сообщение Anonymous »

У меня есть приложение, использующее филамент 3.2, и в этом приложении у меня есть ресурс под названием «Студенты», внутри этого ресурса я вызываю «Tables\Actions\ExportBulkAction», который вызывает пользовательский экспортер.
Проблема в том, что мой ресурс основан на модели «Студенты», и мне нужно экспортировать объект под названием «Курсы», который является другой таблицей и имеет отношение один ко многим со студентами, поэтому курс может у вас много студентов, и студент может принадлежать только к одному курсу.

Код: Выделить всё

                Tables\Actions\ExportBulkAction::make('export_courses')
->label('Courses export')
->icon('heroicon-o-document-arrow-down')
->color('success')
->modifyQueryUsing(function (Builder $query)
{
$initalQuery = $query->pluck('id')->toArray();
$newQuery = Courses::query()
->whereIn('student_id', $initalQuery)
->with(['student', 'user']);
return $newQuery;
})
->exporter(CoursesExporter::class),
Но по умолчанию экспортер берет модель «Студенты», полученную из ресурса, и если я попытаюсь изменить ее внутри экспортера, это не сработает:

Код: Выделить всё

protected static ?string $model = Courses::class;
Я также пытался изменить запрос внутри экспортера с помощью метода «modifyQuery», но он тоже не работает, при попытке экспорта выдается ошибка:

Код: Выделить всё

    public static function modifyQuery(Builder $query): Builder
{
$initalQuery = $query->pluck('id')->toArray();
$newQuery = Courses::query()
->whereIn('student_id', $initalQuery)
->with(['student', 'user']);
return $newQuery;
}
Есть ли способ сделать это с помощью нити накаливания? Или, может быть, есть способ сделать это с помощью специального действия или чего-то еще?
Благодарю тех, кто знает и может ответить!
Я использую filament 3.2, php 8.2 и laravel 11.45.0

Подробнее здесь: https://stackoverflow.com/questions/797 ... rter-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»