web-dev-qa-db-ja.com

Laravel bladeチェックボックス

データベースからチェックボックスの状態を設定したいので、書きます

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

しかし、次のようにチェックボックスに「id」を設定したい場合

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

チェックボックスの状態は常にtrueに設定されます。 (ユーザーが選択する前に)

だから、ユーザーが選択する前にチェックボックスの状態が設定されている場合、ブレードのチェックボックスに「id」をどのように設定するのか疑問です?

12
lggg3

3番目の引数は、チェックボックスをオンにするかどうかを決定します。おそらく$offer->ASAP(または$offer->asapはtrue(またはfalseではない、またはnullではない)です。チェックボックスをオフにする場合は、falseに設定するか、3番目の引数を使用しないでください(nullまたはfalseに設定)。

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

[〜#〜] edit [〜#〜]

もう1つの可能性は、ページにasap idで要素を見つけてこのチェックボックスをチェックするカスタムJavaScriptコードがあることです。したがって、idを設定しないと、JavaScriptはチェックできませんが、このidを設定すると、JavaScriptによってチェックボックスがチェックされます。

6

私はこの質問が以前に答えられたことを知っています、この1つでは、異なるケースでLaravel/bladeでチェックボックスを実装する方法を段階的に説明します...

したがって、データベースからチェックボックスをロードするか、チェックボックスがチェックされているかどうかをテストするには:

最初 @itachiが述べたように、それがどのように機能するかを理解する必要があるすべての:

{{Form :: checkbox(1番目の引数、2番目の引数、3番目の引数、4番目の引数)}}

  • 最初の引数:名前
  • 2番目の引数:値
  • 3番目の引数:チェック済みまたは未チェック:trueまたはfalse
  • 4番目の引数:追加の属性(チェックボックス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 ::入力を使用します。)

{!! Form::model( $user, ['route' => ['user.update', $user->id], 'method' => 'put' ]) !!}
    {!! Form::checkbox('admin', 1, null) !!}
{!! Form::close() !!}

次のように取得することもできます。

{{ Form::checkbox('admin',null, $user->admin) }}

オーケー今対処する方法:

  • 複数のチェックボックス
  • CSSクラスを追加
  • チェックボックス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)

私は複数のチェックボックスに対処する方法を見つけるためにしばらく費やしましたが、これが誰かを助けることができることを願っています:)

32

_FormBuilder.php_

_    public function checkbox($name, $value = 1, $checked = null, $options = array())
{
    return $this->checkable('checkbox', $name, $value, $checked, $options);
}
_
  • 最初のパラメーター:名前
  • 2番目:値
  • 3番目:チェックされているかどうか(null、false、true)
  • 4番目:属性。

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

ご注文が間違っています。

そのはず、

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