Ответ 1
Просто измените disabled
на readonly
Пока var_dumping содержимое Input:all()
с Laravel 4, я заметил, что вход, созданный с помощью следующего кода, игнорируется каркасом:
{{ Form::text('departure', 'Departure', array('class' => 'form-control', 'disabled')) }}
Но следующее работает так, как ожидалось:
{{ Form::text('departure', 'Departure', array('class' => 'form-control')) }}
У меня есть веская причина отключить пользовательский интерфейс с тем, что находится в этом поле ввода. Однако мне нужно сохранить его в базе данных. Как мне это сделать? Отключить атрибут disabled
с помощью jQuery, когда пользователь отправляет форму? Это немного смешно, не так ли?
Просто измените disabled
на readonly
Плохая идея полагаться на флагов HTML, например disabled
или readonly
. Пользователь может легко открыть инспектора и изменить значение поля. Не раскрывайте это вообще в шаблоне, это бизнес-логика, которая принадлежит модели!
Выполняете ли вы цикл Input:: all(), чтобы сохранить поля в базе данных? Если это так, вы можете написать что-то вроде этого:
$allowedFields = ["field1", "field2", "field3" ...];
foreach($allowedFields as $field) {
if(Input::has($field) {
$myEloquentModel->{$field} = Input::get($field);
}
}
$myEloquentModel->save();
Преимущества: проверяет только разрешенные поля, обновляет только текущие поля в фактическом запросе.