В настоящее время я использую коллекцию Maatwebsite при обработке импортируемого CSV-файла и его проверке, так как мне трудно использовать метод ToModel. Вот как я проверяю поля csv:
class ImportRooms implements ToCollection, WithStartRow
{
public function collection(Collection $rows)
{
foreach($rows as $row){
\Validator::make($row->toArray(), [
'name' => $row[0],
'room_code' => $row[1],
'user_name' => $row[2],
'email' => $row[3],
'password' => $row[4],
'remarks' => $row[5],
'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();
}
}
/**
* @return int
*/
public function startRow(): int
{
return 2;
}
}
Это пример данных, которые у меня есть.
Illuminate\Support\Collection {#565 ▼
#items: array:6 [▼
0 => "Room name"
1 => "Room101"
2 => "user"
3 => "fmacejkovic@example.org"
4 => "password"
5 => "remarks"
]
}
Теперь моя проблема в том, что, хотя все значения верны и действительны, это все еще терпит неудачу в проверке. Я пытаюсь присвоить указанную переменную c, чтобы в случае сбоя она возвращала имя строки вместо номера строки. Даже если я использую номер строки, он все равно не работает.