24

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

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

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

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

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

ユーザーが選択する前にチェックボックスの状態が設定されている場合、ブレードのチェックボックスに「id」を設定する方法について質問します。

4

4 に答える 4

48

この質問は以前に回答されたことを知っています。この質問では、さまざまなケースで Laravel/blade を使用してチェックボックスを実装する方法を段階的に説明します ...

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

まず、@itachi が述べたように、それがどのように機能するかを理解する必要があります。

{{ Form::checkbox( 第 1 引数、第 2 引数、第 3 引数、第 4 引数 ) }}

  • 最初の引数: 名前
  • 第二引数:値
  • 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 = 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)

複数のチェックボックスを処理する方法を理解するために時間を費やしましたが、これが誰かの助けになることを願っています:)

于 2015-07-15T20:26:30.570 に答える
3

FormBuilder.php

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

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

あなたの注文は間違っています。

そのはず、

{{ Form::checkbox('asap',$offer->ASAP, null, array('id'=>'asap')) }}
于 2014-11-17T13:21:08.377 に答える