Laravel Form Facade For Select带有额外标签的一个选项

时间:2017-03-28 12:13:07

标签: php laravel-5 laravel-5.3

我在html表单中选择了这个选项。

 <select name="position" id="position" class='position metadata form-control' data-parsley-required data-parsley-required-message="Please select the one position">
             <option value="">Select Position</option>
            {{ $options = App\Metadata::all()->where('category','position') }}
             @foreach($options as $option)
                <option value="{{$option->item}}">{{$option->item}}</option>
                @endforeach
            <option value="1" mytag='position'>Define New</option>
        </select> 

此工作的表格外观像这样

$options = App\Metadata::where('category', 'department')->orderBy('item')->pluck('item', 'item');
   $options->prepend('Define New', '1');
   $options->prepend('Select department', '0');
    ?>                                                                                              
{!! Form::select('department', $options , null, ['class' => 'department metadata form-control', 'id'=>'department']) !!}

问题是如何添加 mytag $ options-&gt; prepend('Define New','1');到表单外观中选择的最后一个选项

2 个答案:

答案 0 :(得分:0)

使用push()代替预先发送。

  

<强>推()

     

push方法将一个项追加到集合的末尾。

您的代码:

$options = App\Metadata::where('category', 'department')->orderBy('item')->pluck('item', 'item');
   $options->push('Define New', '1');
   $options->push('Select department', '0');
    ?>                                                                                              
{!! Form::select('department', $options , null, ['class' => 'department metadata form-control', 'id'=>'department']) !!}

作为额外的定义变量,在视图上进行查询,调用模型或应用复杂逻辑是一种非常糟糕的做法,应该在Controller本身上完成。

答案 1 :(得分:0)

在Laravel集合中添加其他元素:

您应该在控制器中执行此操作:

$metaDataOptions = App\MetaData::orderBy('item')->pluck('item');

//This will be the first option
$metaDataOptions->prepend('Select department', '0');

//This will be the last option 
$metaDataOptions->push('Define New', '1');

然后使用$metaDataOptions返回您的观点:

return view('insert_your_view')->withOptions($metaDataOptions);

在您的视图中,将$options传递给Form::select()

{!! Form::select('department', $options , null, ['class' => 'department metadata form-control', 'id'=>'department']) !!}

将自定义属性添加到选项:

您需要将自己的"type"元素定义为Form。这可以通过Form::macrohttps://laravelcollective.com/docs/5.2/html#custom-macros

来实现