Я использую сайт maatwebsite для импорта файла excel и сохранения записей в базе данных.
Я смог их импортировать, но я также хочу добавить проверки, такие как требуемая | электронная почта, и также хочу перехватитьsql исключения, возникающие между ними.
Ниже приведен код моего контроллера.
public function import(Request $request)
{
$validateData = $request->validate([
'class_id' => 'required'
]);
try {
$import->import(request()->file('usersExcel'), null , \Maatwebsite\Excel\Excel::XLSX);
} catch (\Maatwebsite\Excel\Validators\ValidationException $e) {
$failures = $e->failures();
$errormessage = "";
dd($failures);
foreach ($failures as $failure) {
$errormess = "";
foreach($failure->errors() as $error)
{
$errormess = $errormess.$error;
}
$errormessage = $errormessage." ,\n At Row ".$failure->row().", ".$errormess."<br>";
}
return redirect('/create_users')->with('error', $errormessage);
}
}
Вот код импорта:
use Importable, SkipsErrors;
private $classid = 0;
public function __construct(int $classid)
{
$this->classid = $classid;
}
public function model(array $row)
{
return new User([
'name' => $row['name'],
'email' => $row['email'],
'password' => Hash::make('password')
]);
}
public function rules(): array
{
return [
'name' => 'required',
'email' => 'required',
'password' => 'required',
];
}
Мои препятствия здесь, я могу пойматьпроверки строк и отправка этого в представление через контроллер, но не уверен, что это правильный код.И я не могу обработать запрос Исключения, которые я получаю, если вставляю повторяющуюся запись.
Можете ли вы, ребята, помочь мне разобраться в этом.