Я делаю функцию загрузки 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.
Итак, как лучше всего с этим справиться?