Nova имеет функцию с именем storeAs()
, в которой у вас есть обратный вызов, чтобы дать ему имя для сохранения как:
public function fields(Request $request)
{
return [
ID::make()->sortable(),
File::make('File', 'filepath')
->rules('required', 'file')
->disk('reports')
->storeAs(function(Request $request) {
return sha1(time()) . '.' . $request->file('filepath')->getClientOriginalExtension();
}),
];
}
Это приведет к: b0954b560d9ad5c96a7502672535d3bcbfd92f3a.pdc
Кредиты Screenbeetle и edoc