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