Как вернуть ошибку в Maatwebsite ToCollection - PullRequest
0 голосов
/ 03 февраля 2020

Я делаю функцию загрузки CSV в своем приложении, которая позволяет пользователю не заполнять поле пароля, если это уже существующий пользователь, в противном случае оно должно иметь значение.

Это то, что я есть в моем контроллере:

public function uploadCSV(UploadCSVRequest $request)
{
    $path = $request->file('file')->getRealPath();

    $data = Excel::import(new ImportRooms, request()->file('file'));

    if($data){
        return redirect()->back()->with('uploaded', 'CSV Upload');
    }

    return redirect()->back()->withErrors(['errCSV' => 'Failed to import CSV.']);
}

И в моем файле ImportRooms это выглядит так:

class ImportRooms implements ToCollection, WithStartRow
{

    public function collection(Collection $rows)
    {
        foreach($rows as $row){
            $row = $row->toArray();
            $data = [
                'name' => $row[0],
                'room_code' => $row[1],
                'user_name' => $row[2],
                'email' => $row[3],
                'password' => $row[4],
                'remarks' => $row[5],
                ];
            \Validator::make($data, [
                'name' =>  ['required', 'max:50'],
                'room_code' =>  ['required', 'max:50'],
                'user_name' =>  ['required', 'max:255'],
                'email' =>  ['required', 'email', 'max:255','nullable'],
                'password' =>  ['min:8','max:255','nullable'],
                'remarks' =>  ['max:500'],

            ])->validate();
        }

        //Insertion to DB is executed here if the data passed the validation.

    }

    /**
    * @return int
    */
    public function startRow(): int
    {
        return 2;
    }
}

Так что, когда я делаю тестирование, я попытался выполнить try catch но все равно не дает ожидаемого результата, вместо этого отображается страница 404|Not Found. Я хочу вернуться на страницу импорта и отобразить CSV Import Failed. Итак, как лучше всего с этим справиться?

...