Laravel blade "старый ввод или переменная по умолчанию"?
Я хочу показать старый вход во входном значении. Если нет старого ввода, чем показать другую переменную:
value="{{ old('salary_' . $employee->id) or 'Default' }}"
Но когда нет старого ввода, он дает мне 1 вместо значения по умолчанию!
Я думаю, что проблема имеет какое-то отношение к конкатенации, но я не знаю, как это исправить !?
Ответы
Ответ 1
or
является оператором сравнения в PHP, поэтому ваш код оценивается как true
или 1. То, что вы хотите, - это тройная инструкция if
.
Как уже упоминалось, or
может использоваться в лезвии как сокращенное выражение для трёхмерного выражения.
Но вы можете (и должны) просто передать значение по умолчанию в качестве второго аргумента функции, например:
value="{{ old('salary_' . $employee->id, 'Default') }}"
Ответ 2
Как описано в документе Laravel: "Если вы показываете старый ввод в шаблоне Blade, удобнее использовать старый помощник:". Поэтому, если вам нужно добавить/изменить форму данных (когда вам нужно использовать форму редактирования для добавления и редактирования в режиме редактирования, вам нужно использовать загруженные данные из модели (базы данных)), чтобы отображать значения из модели (через контроллер), которую вы можете использовать в следующих:
name="some_value" value="{{ $some_value or old('some_value', $the_value) }}"
где - имя переменной "some_value_from_model" в массиве view. В этом случае он должен быть сначала $ some_value будет использоваться для установки в "значении", и, если нет, он попытается использовать старый (значение из запроса от имени "some_value"), а если не старое, тогда "" должно быть используемый.
Спасибо WoodyDRN за комментарий.
Ответ 3
Попробуй это:
<textarea name="alamat" id="" class="form-control" placeholder="Alamat">{{ old('alamat')[email protected]$biodata->alamat }}</textarea>