如何使用 laravelcollective 将默认空白选项添加到 select 输入字段?
How to add a default blank option to a select input field using laravelcollective?
我有一个表单,用户可以在其中选择 select 一个选项,如果用户不选择一个选项,我需要将默认值 'null' 提交到数据库。
我正在使用 laravel 5.1 所以我的输入字段如下:
<div class="form-group col-lg-4">
{!! Form::label('cat1', 'CAT Tool 1', ['class' => 'control-label']) !!}
<div class="input-group">
<div class="input-group-addon">
<span class="glyphicon glyphicon-cog"></span>
</div>
{!! Form::select('cat1', $cats , null , ['class' => 'form-control']) !!}
</div>
</div>
此处的 $cats
数组是 CAT 工具 ($cats=['SDL Trados', 'Deja Vu', 'WordFast', 'OmegaT', 'Fluency'];
) 的数组。我有类似的字段,其中返回了一组数据库属性(例如,在控制器创建方法中我有 $languages=Language::lists('fa_name', 'id');
)。我怎样才能做到这一点?
我不知道如何将其提交为 null
。如果你在那里放一个空白,它只会作为一个空字符串返回,所以你必须检查它是否为 empty
,如果是,则将其设置为 null。
要将其添加到数组中,只需将其添加到开头即可。
$cats = ['', 'SDL Trados', 'Deja Vu', 'WordFast', 'OmegaT', 'Fluency'];
或者如果您已经有了$cats
变量并且需要修改它...
array_unshift($cats, '');
您可能必须键入这些数组,因为我相信 select 会将键设置为文本,将值设置为选项元素中的值。
在这种情况下,您仍然希望使用 array_unshift
并传入数组而不是字符串。
array_unshift($languages, ['Optional' => '']);`
这将为 select 添加一个附加选项,测试 Optional
且没有值。
lists
方法用于 return 一个数组,但从 Laravel 5.1 开始,它 return 是一个集合,所以我需要将 $languages 转换为这样的数组:
$languages=Language::lists('fa_name', 'id')->all();
或
$languages=Language::lists('fa_name', 'id')->toArray();
接下来在视图中我可以使用以下内容:
{!! Form::select('from1', [null => 'Select your language'] + $languages, null , ['class' => 'form-control']) !!}
这将向 select 字段添加一个空选项。
我有一个表单,用户可以在其中选择 select 一个选项,如果用户不选择一个选项,我需要将默认值 'null' 提交到数据库。 我正在使用 laravel 5.1 所以我的输入字段如下:
<div class="form-group col-lg-4">
{!! Form::label('cat1', 'CAT Tool 1', ['class' => 'control-label']) !!}
<div class="input-group">
<div class="input-group-addon">
<span class="glyphicon glyphicon-cog"></span>
</div>
{!! Form::select('cat1', $cats , null , ['class' => 'form-control']) !!}
</div>
</div>
此处的 $cats
数组是 CAT 工具 ($cats=['SDL Trados', 'Deja Vu', 'WordFast', 'OmegaT', 'Fluency'];
) 的数组。我有类似的字段,其中返回了一组数据库属性(例如,在控制器创建方法中我有 $languages=Language::lists('fa_name', 'id');
)。我怎样才能做到这一点?
我不知道如何将其提交为 null
。如果你在那里放一个空白,它只会作为一个空字符串返回,所以你必须检查它是否为 empty
,如果是,则将其设置为 null。
要将其添加到数组中,只需将其添加到开头即可。
$cats = ['', 'SDL Trados', 'Deja Vu', 'WordFast', 'OmegaT', 'Fluency'];
或者如果您已经有了$cats
变量并且需要修改它...
array_unshift($cats, '');
您可能必须键入这些数组,因为我相信 select 会将键设置为文本,将值设置为选项元素中的值。
在这种情况下,您仍然希望使用 array_unshift
并传入数组而不是字符串。
array_unshift($languages, ['Optional' => '']);`
这将为 select 添加一个附加选项,测试 Optional
且没有值。
lists
方法用于 return 一个数组,但从 Laravel 5.1 开始,它 return 是一个集合,所以我需要将 $languages 转换为这样的数组:
$languages=Language::lists('fa_name', 'id')->all();
或
$languages=Language::lists('fa_name', 'id')->toArray();
接下来在视图中我可以使用以下内容:
{!! Form::select('from1', [null => 'Select your language'] + $languages, null , ['class' => 'form-control']) !!}
这将向 select 字段添加一个空选项。