【问题标题】:How to add a default blank option to a select input field using laravelcollective?如何使用 laravelcollective 向选择输入字段添加默认空白选项?
【发布时间】:2015-09-01 12:05:52
【问题描述】:

我有一个表单,用户可以在其中选择一个选项,如果用户没有选择一个选项,我需要将默认值“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');)。我怎样才能做到这一点?

【问题讨论】:

  • 显示您用于将此数据插入数据库的 php 代码。
  • @arthur-samarcos 是否需要显示 php 代码?我仍在处理表单本身!

标签: php forms laravel html-select laravelcollective


【解决方案1】:

我不知道是否将其提交为null。如果你在其中放一个空白,它只会以空字符串的形式返回,所以你必须检查它是否为 empty,如果是,请将其设置为 null。

要将其添加到数组中,只需将其添加到开头即可。

$cats = ['', 'SDL Trados', 'Deja Vu', 'WordFast', 'OmegaT', 'Fluency'];

或者如果您已经拥有$cats 变量并且需要修改它...

array_unshift($cats, '');

您可能必须键入这些数组,因为我相信选择会将键设置为文本,将值设置为选项元素中的值。

在这种情况下,您仍希望使用 array_unshift 并传入一个数组而不是字符串。

array_unshift($languages, ['Optional' => '']);`

这将为带有测试 Optional 且没有值的选择添加一个附加选项。

【讨论】:

  • 谢谢。如果这个数组是从数据库表中返回的呢?
  • 而不是get(),您希望使用lists(value, key),它将以适当的格式返回数组以用于您的选择框,其中value是存储值的数据库列的名称(可能 id) 和 key 将是您为选项文本(如名称或描述)获取的列。例如lists('id', 'name')
  • 正如您在我的问题的编辑版本中看到的那样,我正在做同样的事情
  • 我已经修改了答案
  • 抱歉,$languages 实际上是一个集合而不是数组,而 array_unshift 需要一个数组!
【解决方案2】:

lists方法用于返回一个数组,但从 Laravel 5.1 开始,它返回一个集合,因此我需要将 $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']) !!}

这将为选择字段添加一个空选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2018-07-25
    相关资源
    最近更新 更多