この質問は以前に回答されたことを知っています。この質問では、さまざまなケースで 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)
複数のチェックボックスを処理する方法を理解するために時間を費やしましたが、これが誰かの助けになることを願っています:)