Флажок лезвия Laravel


Я хочу установить состояние флажков из базы данных, поэтому я пишу,

 {{ Form::checkbox('asap',null,$offer->asap) }}

Но если я хочу установить идентификатор в флажок, например

{{ Form::checkbox('asap',null,$offer->ASAP, array('id'=>'asap')) }}

Он всегда устанавливал для моего состояния флажка значение true. (прежде чем пользователь выберет его)

Итак, вопрос, как установить идентификатор в флажках блейда, когда состояние флажка установлено до того, как пользователь его выберет?

Author: lggg3, 2014-11-17

4 answers

3-й аргумент решает, установлен флажок или нет. Так что, вероятно, $offer->ASAP (или $offer->asap истинно (или не ложно или не равно нулю). Если вы хотите снять флажок, либо установите для него значение false, либо не используйте 3-й аргумент (установите значение в значение null или false):

{{ Form::checkbox('asap',null,null, array('id'=>'asap')) }}

РЕДАКТИРОВАТЬ

Другая возможность заключается в том, что у вас на странице есть пользовательский код JavaScript, который находит элемент по идентификатору asap и устанавливает этот флажок. Поэтому, когда вы не устанавливаете идентификатор, JavaScript не может его проверить, но когда вы установите этот идентификатор, флажок будет установлен с помощью JavaScript.

 5
Author: Marcin Nabiałek, 2014-11-17 13:45:55

Я знаю, что на этот вопрос уже был дан ответ, в этом я собираюсь шаг за шагом объяснить, как реализовать флажки с помощью Laravel/blade в разных случаях...

Итак, чтобы загрузить ваши флажки из базы данных или проверить, установлен ли флажок:

Во-первых из всего, что вам нужно понять, как это работает, как упоминал @итачи:

{{Форма::флажок (1-й аргумент, 2-й аргумент, 3-й аргумент, 4-й аргумент) }}

  • Первый аргумент: имя
  • Второй аргумент: значение
  • Третий аргумент: проверено или не проверено это принимает: истина или ложь
  • Четвертый аргумент: дополнительные атрибуты (например, флажок css-класс)

Пример :

{{ 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) }}

Хорошо, теперь как поступить с помощью:

  • флажки для кратных значений
  • Добавить класс css
  • Добавить идентификатор флажка
  • Добавить метку

Допустим, мы хотим получить рабочие дни из нашей базы данных 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)

Я потратил некоторое время, чтобы понять, как работать с несколькими флажками, я надеюсь, что это может кому-то помочь:)

 22
Author: Mohamed Salem Lamiri, 2015-07-16 01:36:09

В FormBuilder.php

    public function checkbox($name, $value = 1, $checked = null, $options = array())
{
    return $this->checkable('checkbox', $name, $value, $checked, $options);
}
  • 1-й параметр: имя
  • 2-й: значение
  • 3-й: проверено или нет (т.е. ноль, ложь или истина)
  • 4-е: атрибуты.

{{ Form::checkbox('asap',null,$offer->ASAP, array('id'=>'asap')) }}

Ваш заказ неверен.

Так и должно быть,

{{ Form::checkbox('asap',$offer->ASAP, null, array('id'=>'asap')) }}
 1
Author: itachi, 2014-11-17 13:21:08

Удачи!

 <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>
 -1
Author: Cherma Ramalho, 2018-03-27 13:30:25