在我的创建函数中,我将视图传递给用户列表然后显示。但是,我已将其更改为以下
<select class="internalWork" name="internalWork">
<option value=""></option>
@foreach($users as $user)
<option value="{{ $user->userName }}">{{ $user->userName }}</option>
@endforeach
</select>
所以我在列表显示之前添加了一个空选项。这很好,因为这个表列允许空输入。
在我的编辑功能中,我得到了列表
$users = User::lists('userName', 'userName');
然后我将其传递给我的编辑视图。在我的编辑视图中,我有以下
<div class="form-group">
{!! Form::label('internalWork', 'Internal work for:', array('class' => 'col-sm-5 control-label red')) !!}
<div class="col-sm-7">
{!! Form::select('internalWork', $users, null, ['class' => 'internalWork']) !!}
</div>
</div>
如果我在创建中选择了一个用户,那么当我进入编辑页面时,默认情况下会选择该用户。但是,如果我没有在创建中选择用户,则在编辑页面上默认显示列表中的第一个用户。
如果数据库值为null,如何让它显示空输入?
由于
答案 0 :(得分:1)
@if (!empty($users)
// the Form
@else
// No result
@endif
OR
array_unshift($users, "There are no users") // Prepend null value to $users
...
// Form::select(..etc
答案 1 :(得分:1)
我认为问题是虽然您在创建视图中提供了一个空选项,但您在编辑视图中没有这样做。
如果在您的编辑功能中,您填充了这样的数组:
$users = ['' => ''] + User::lists('userName', 'userName');
然后我认为如果userName
为空,将选择空选项。这基本上是将空对连接到您传递给视图的$users
数组的开头。
您也可以考虑以相同的方式构建create视图 - 使用上面的代码在create方法中生成$users
数组,然后在视图中使用Form facade。
我发现这对于使用Form::select()
非常有用:Creating a Select Box Field