2015-12-11 43 views
0

在我的创建函数中,我将我的视图传递给我然后显示的用户列表。不过,我已经把它改成下面Laravel 5 - 处理编辑页面上的空选择输入

<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> 

如果我选择在创建,然后当我去到编辑页面,该用户被默认选中的用户。但是,如果我不在创建中选择一个用户,则在编辑页面上,列表中的第一个用户默认显示。

如何在数据库值为空时显示空输入?

感谢

回答

1

我认为这个问题是,虽然你是在创建视图提供了一个空的选项,你是不是在编辑视图中这样做。

如果在你的编辑功能,您填充您的阵列是这样的:

$users = ['' => ''] + User::lists('userName', 'userName');

那么我想空的选项将被选中,如果userName是空的。这基本上是将一对空对连接到您传递给视图的$users数组的开头。

您也可以考虑以相同的方式构建创建视图 - 使用上面的代码在您的create方法中生成$users数组,然后在视图中使用Form外观。

我发现这对于使用Form::select()非常有用:Creating a Select Box Field

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