Флажок 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>