Майте метод, який імпортує CSV-дані до бази даних. Я виконую деякі базові перевірки за допомогою
class CsvImportController extends Controller
{
public function import(Request $request)
{
$this->validate($request, [
'csv_file' => 'required|mimes:csv,txt',
]);
Але після цього все може піти не так з більш складних причин, далі в кроличу нору, що створює певні винятки. Я не можу написати тут належного матеріалу для перевірки, щоб використовувати його з цим validate
методом, але мені дуже подобається, як працює Laravel, коли перевірка не вдається, і як легко вбудувати помилки (помилки) у перегляд леза тощо, так що ...
Чи існує (бажано чистий) спосіб вручну сказати Laravel, що "я знаю, що зараз я не використовував ваш validate
метод, але я б дуже хотів, щоб ви викрили цю помилку тут, як ніби"? Чи є щось, що я можу повернути, виняток, яким я можу обернути речі, чи щось?
try
{
// Call the rabbit hole of an import method
}
catch(\Exception $e)
{
// Can I return/throw something that to Laravel looks
// like a validation error and acts accordingly here?
}
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) { return $value == 'foo'; });
тоді ви можете додати правило foo в правила'csv_file' => 'required|foo|mimes:csv,txt',
??