我想从数据库中设置复选框状态,所以我写,
{{ Form::checkbox('asap', null, $offer->asap) }}
但是,如果我想将“id”设置为复选框,例如
{{ Form::checkbox('asap', null, $offer->ASAP, array('id'=>'asap')) }}
它总是将我的复选框状态设置为 true。(在用户选择之前)
那么,在用户选择复选框状态之前,如何在刀片复选框中设置“id”?
我想从数据库中设置复选框状态,所以我写,
{{ Form::checkbox('asap', null, $offer->asap) }}
但是,如果我想将“id”设置为复选框,例如
{{ Form::checkbox('asap', null, $offer->ASAP, array('id'=>'asap')) }}
它总是将我的复选框状态设置为 true。(在用户选择之前)
那么,在用户选择复选框状态之前,如何在刀片复选框中设置“id”?
我知道这个问题之前已经回答过了,在这个问题中,我将逐步解释如何在不同情况下使用 Laravel/blade 实现复选框......
因此,为了从数据库中加载您的复选框或测试是否选中了复选框:
首先,您需要了解它是如何工作的,正如@itachi 提到的:
{{ Form::checkbox(第一个参数,第二个参数,第三个参数,第四个参数) }}
例子 :
{{ 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">
如何获取复选框值?(在您的控制器中)
方法一:
public function store(UserCreateRequest $request)
{
$my_checkbox_value = $request['admin'];
if($my_checkbox_value === 'yes')
//checked
else
//unchecked
...
}
方法二:
if (Input::get('admin') === 'yes') {
// checked
} else {
// unchecked
}
注意:您需要为未选中的框分配默认值:
if(!$request->has('admin'))
{
$request->merge(['admin' => 0]);
}
这很好对吧?但是我们如何在视图中设置复选框呢?
为了获得良好的实践,我建议
Form::model
在创建表单时使用这将自动填充与模型具有相同名称的输入值(以及使用不同的刀片 Form::inputs ..)
{!! Form::model( $user, ['route' => ['user.update', $user->id], 'method' => 'put' ]) !!}
{!! Form::checkbox('admin', 1, null) !!}
{!! Form::close() !!}
你也可以像这样得到它:
{{ Form::checkbox('admin',null, $user->admin) }}
Okey现在如何处理:
假设我们想从我们的数据库中获取工作日
$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)
我花了一些时间来弄清楚如何处理多个复选框我希望这可以帮助某人:)
第三个参数决定是否选中复选框。所以可能$offer->ASAP
(或$offer->asap
为真(或不为假或不为空)。如果您想取消选中复选框,请将其设置为假,或者不使用第三个参数(设置为空或假):
{{ Form::checkbox('asap',null,null, array('id'=>'asap')) }}
编辑
另一种可能性是您的页面上有一些自定义 JavaScript 代码,这些代码通过asap
id 查找元素并选中此复选框。所以当你不设置id的时候,JavaScript是无法勾选的,但是当你设置了这个id的时候,复选框会被JavaScript勾选。
在FormBuilder.php
public function checkbox($name, $value = 1, $checked = null, $options = array())
{
return $this->checkable('checkbox', $name, $value, $checked, $options);
}
{{ Form::checkbox('asap',null,$offer->ASAP, array('id'=>'asap')) }}
你的订单是错误的。
它应该是,
{{ Form::checkbox('asap',$offer->ASAP, null, array('id'=>'asap')) }}
祝你好运!
<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>