我在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');到表单外观中选择的最后一个选项
答案 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)
您应该在控制器中执行此操作:
$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::macro
:https://laravelcollective.com/docs/5.2/html#custom-macros