Перехват исключений при импорте файла Excel с помощью Maatwebsite - PullRequest
0 голосов
/ 26 марта 2019

Я использую сайт 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',
    ];
    }

Мои препятствия здесь, я могу пойматьпроверки строк и отправка этого в представление через контроллер, но не уверен, что это правильный код.И я не могу обработать запрос Исключения, которые я получаю, если вставляю повторяющуюся запись.

Можете ли вы, ребята, помочь мне разобраться в этом.

...