Have a method that\'s importing CSV-data into a Database. I do some basic validation using
class CsvImportController extends Controller
{
public functio
Simply return from controller:
return back()->withErrors('your error message');
For Laravel 5.8:
.
The easiest way to throw an exception is like this:
throw new \ErrorException('Error found');
As of laravel 5.5, the ValidationException class has a static method withMessages that you can use:
$error = \Illuminate\Validation\ValidationException::withMessages([
'field_name_1' => ['Validation Message #1'],
'field_name_2' => ['Validation Message #2'],
]);
throw $error;
I haven't tested this, but it should work.
Update
The message does not have to be wrapped in an array. You can also do:
use Illuminate\Validation\ValidationException;
throw ValidationException::withMessages(['field_name' => 'This value is incorrect']);
Laravel <= 6.2 this solution worked for me:
$validator = Validator::make([], []); // Empty data and rules fields
$validator->errors()->add('fieldName', 'This is the error message');
throw new ValidationException($validator);
you can try a custom message bag
try
{
// Call the rabbit hole of an import method
}
catch(\Exception $e)
{
return redirect()->to('dashboard')->withErrors(new \Illuminate\Support\MessageBag(['catch_exception'=>$e->getMessage()]));
}