douqingji3026 2017-03-28 04:13
浏览 72
已采纳

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

I have a select with this option in html form select.

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

The Form Facade for this work like this

$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']) !!}

The problem is how do I add mytag $options->prepend('Define New', '1'); to the last option on the select in the form facade

  • 写回答

2条回答 默认 最新

  • dongmi9494 2017-03-28 04:40
    关注

    Adding additional elements to Laravel's collection:

    You should do this in your controller:

    $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');
    

    then return your view with $metaDataOptions:

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

    And in your view pass $options to Form::select():

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

    Adding custom attributes to option:

    You need to define your own "type" of element to Form. This can be achieved by using Form::macro: https://laravelcollective.com/docs/5.2/html#custom-macros

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?