我有一个带有Laravel nova的清单应用程序。在该应用程序上,我正在使用mpdf library以pdf格式下载任何资源。有些时候,我们需要pdf上的数千条记录。但是,如果我在过滤掉索引布局之后检查了数千条记录,那么仍然需要花费大量时间才能将这些集合加载到Laravel nova操作中。
有什么解决方案可以使动作集合超快?
还是通过任何方式获取请求过滤器并进行自定义查询以获取集合?
这是我的操作代码:
/**
* The number of models that should be included in each chunk.
*
* @var int
*/
public static $chunkCount = 200000000;
/**
* Perform the action on the given models.
*
* @param \Laravel\Nova\Fields\ActionFields $fields
* @param \Illuminate\Support\Collection $models
* @return mixed
*/
public function handle(ActionFields $fields, Collection $models)
{
if($models->count() > 1000)
{
return Action::danger('Maximum rows exceeded.');
}
$filename = "assets_".time().".pdf";
$subtitle = $fields->subtitle;
ini_set("pcre.backtrack_limit", "10000000000");
$pdf = \PDF::loadView('pdf.pages.assets', compact('models', 'subtitle'), [], [
'mode' => 'utf-8',
]);
$pdf->save(Storage::path($filename));
return Action::redirect( route('dump-download', compact('filename')) );
}
/**
* Get the fields available on the action.
*
* @return array
*/
public function fields()
{
return [
Text::make('Subtitle', 'subtitle')
->rules('nullable', 'string', 'max:100')
];
}