У меня есть рабочий crud-код в laravel, но моя проблема - это проверка. Вот мой код:Laravel 5 Update Validation
public function update(Request $request)
{
$room_id = $this->route('route');
$validator = \Validator::make(\Request::all(), [
'roomNumber' => 'required|unique:rooms,roomNumber,',
'type' => 'required',
'price' => 'required',
]);
if(!$validator -> fails()){
$id = \Request::input('id');
$com = Room::find($id);
$room -> roomNumber = \Request::input('roomNumber', 'Test');
$room -> type = \Request::input('type', 'Test');
$room -> price = \Request::input('price', '0.00');
$room -> description = \Request::input('description', 'Test');
$com -> save();
return redirect('rooms') -> with('message', 'Room Updated!');
} else {
return redirect('rooms') -> withErrors($validator->errors());
}
}
Как вы можете видеть, номер комнаты необходим и должен быть уникальным. Моя проблема в том, что это код обновления. Что делать, если я просто хочу обновить какое-то поле, например, price
или type
? Всякий раз, когда я обновляю поле, я всегда получаю The room number has already been taken.
на мой взгляд, потому что да, номер комнаты должен быть уникальным в моей проверке.
Как я могу обновить конкретное поле, которое все равно будет проверять, если room number
является уникальным, но если данные я обновление в том же поле, он будет просто обновить другие поля, такие как type
и price
? Пожалуйста, поправьте меня, если мой вопрос будет расплывчатым. Спасибо!
Пример:
У меня есть 2 данных в моей таблице номеров
Data 1:
roomNumber: 214
type: Queen
price: 150.00
Data 2:
roomNumber: 619
type: Suite
price: 250.00
Теперь, если я обновить Data 1
поле price
от 150.00
к 160.00
, я получаю сообщение об ошибке проверки The room number has already been taken.
, потому что он также будет проверять roomNumber
, когда я обновляю. Как я могу обновить его без проверки roomNumber
, если данные, которые я обновляю, одинаковы?
Извините, вы можете уточнить это немного, когда вы скажете «.. но если данные, которые я обновляю, находятся в одном поле, он просто обновит другие поля, такие как тип и цена». Можете ли вы привести пример? – codegeek
@codegeek Обновлено мое сообщение – FewFlyBy