Флажок Laravel blade
Я хочу установить флажки состояния из базы данных, поэтому я пишу,
{{ Form::checkbox('asap', null, $offer->asap) }}
Но если я хочу установить 'ID' на флажок, как
{{ Form::checkbox('asap', null, $offer->ASAP, array('id'=>'asap')) }}
Он всегда устанавливал для моего состояния флажка значение true. (До того, как пользователь выберет его)
Итак, вопрос, как установить 'id' в блейд-флажках, когда состояние флажка установлено, прежде чем пользователь выберет его?
Ответы
Ответ 1
Третий аргумент определяет, установлен ли флажок или нет. Таким образом, вероятно, $offer->ASAP
(или $offer->ASAP
является истинным (или не является ложным или не является нулевым). Если вы хотите, чтобы флажок не отмечен, установите его в значение false или не используйте третий аргумент (установленный в значение null или false)
{{ Form::checkbox('asap',null,null, array('id'=>'asap')) }}
ИЗМЕНИТЬ
Другая возможность заключается в том, что на вашей странице есть собственный код JavaScript, который находит элемент по идентификатору asap
и проверяет этот флажок. Поэтому, когда вы не устанавливаете id, JavaScript не может его проверить, но когда вы установите этот идентификатор, флажок будет проверяться JavaScript.
Ответ 2
Я знаю, что на этот вопрос был дан ответ раньше, в этом я буду объяснять шаг за шагом, как реализовать флажки с Laravel/blade-сервером с разными случаями...
Итак, чтобы загрузить ваши флажки из базы данных или проверить, установлен ли флажок:
Сначала всего, что вам нужно, чтобы понять, как это работает, как отметил @itachi:
{{Форма:: checkbox (1-й аргумент, 2-й аргумент, 3-й аргумент, 4-й аргумент)}}
- Первый аргумент: name
- Второй аргумент: значение
- Третий аргумент: отмечен или не отмечен: true или
ложь
- Четвертый аргумент: дополнительные атрибуты (например, флажок css classe)
Пример:
{{ Form::checkbox('admin') }}
//will produces the following HTML
<input name="admin" type="checkbox" value="1">
{{ Form::checkbox('admin', 'yes', true) }}
//will produces the following HTML
<input checked="checked" name="admin" type="checkbox" value="yes">
Как получить значения флажков? (в вашем контроллере)
Метод 1:
public function store(UserCreateRequest $request)
{
$my_checkbox_value = $request['admin'];
if($my_checkbox_value === 'yes')
//checked
else
//unchecked
...
}
Метод 2:
if (Input::get('admin') === 'yes') {
// checked
} else {
// unchecked
}
Примечание: вам нужно присвоить значение по умолчанию для непроверенного окна:
if(!$request->has('admin'))
{
$request->merge(['admin' => 0]);
}
Это хорошо? но как мы можем установить отмеченные поля на наш взгляд?
Для хорошей практики я предлагаю использовать Form::model
, когда вы создаете свой форма это будет автоматически заполнять входные значения, которые имеют те же имена, что и модель (а также с использованием разных форм бланка:: входы..)
{!! Form::model( $user, ['route' => ['user.update', $user->id], 'method' => 'put' ]) !!}
{!! Form::checkbox('admin', 1, null) !!}
{!! Form::close() !!}
Вы также можете получить его так:
{{ Form::checkbox('admin',null, $user->admin) }}
Okey теперь как справиться с:
- многократные флажки
- Добавить css classe
- Добавить checkbox id
- Добавить ярлык
скажем, мы хотим получить рабочие дни из нашей базы данных
![Working days]()
$working_days = array( 0 => 'Mon', 1 => 'Tue', 2 => 'Wed',
3 => 'Thu', 4 => 'Fri', 5 => 'Sat', 6 => 'Sun' );
@foreach ( $working_days as $i => $working_day )
{!! Form::checkbox( 'working_days[]',
$working_day,
!in_array($working_days[$i],$saved_working_days),
['class' => 'md-check', 'id' => $working_day]
) !!}
{!! Form::label($working_day, $working_day) !!}
@endforeach
//$saved_working_days is an array of days (have 7 days, checked & unchecked)
Я потратил некоторое время, чтобы выяснить, как бороться с несколькими флажками. Надеюсь, это может помочь кому-то:)
Ответ 3
in FormBuilder.php
public function checkbox($name, $value = 1, $checked = null, $options = array())
{
return $this->checkable('checkbox', $name, $value, $checked, $options);
}
- 1-й параметр: имя
- 2nd: значение
- 3rd: отмечен или нет (т.е. null, false или true)
- 4-й: атрибуты.
{{ Form::checkbox('asap',null,$offer->ASAP, array('id'=>'asap')) }}
ваш заказ неверен.
он должен быть,
{{ Form::checkbox('asap',$offer->ASAP, null, array('id'=>'asap')) }}
Ответ 4
Удачи!
<div class="togglebutton">
<label>
@if ($programmer->play === 1)
<input type="checkbox" name="play" checked="">
@else
<input type="checkbox" name="play" {{ old('play') ? 'checked' : '' }} >
@endif
Play
</label>
</div>