Как указать атрибуты HTML для параметров тега select, созданного с помощью laravel form builder?

Вы можете установить атрибуты HTML для самого <select> , но как насчет <options> ?

Form::select('name', $options, null, ['class'=>'form-control'])

Solutions Collecting From Web of "Как указать атрибуты HTML для параметров тега select, созданного с помощью laravel form builder?"

Первый параметр – это атрибут id и name , второй параметр – массив со значениями <select> , третий параметр – опция, а четвертый – массив с атрибутами HTML. Если вы хотите установить name , class или другой атрибут HTML, просто поместите его в массив (не можете установить id с массивом, необходимо использовать первый параметр):

 // View {{ Form::select('selectname', $selectname, Input::old('selectname'), array('class'=>'form-control', 'name'=>'modified_name')) }} 

EDIT1: я неправильно понял этот вопрос, единственный способ установить атрибуты HTML в <option> – это динамически использовать Form::macro и строить теги <option> .


EDIT2: Вы должны построить что-то вроде этого:

 Form::macro('test', function($name, $list = array(), $options = array()) { $build = array(); foreach ($list as $key => $value) { $build[] = sprintf('<option id="%s" name="%s" class="%s" value="%s">%s</option>', $name, $name, $options['class'], $value->id, $value->name); } return join("\n", $build); }); 

И затем используйте его в своем представлении:

 {{ Form::open(array('url' => 'test')) }} {{ Form::test('test', $list, ['class' => 'form-control']) }} {{ Form::close() }} 

Результат:

 <option id="test" name="test" class="form-control" value="1">Test1</option> <option id="test" name="test" class="form-control" value="2">Test2</option> <option id="test" name="test" class="form-control" value="3">Test3</option> 

Вы можете добавить теги <select> в макрос и передать некоторые аргументы функции для атрибутов HTML или просто добавить теги <select> в представление с соответствующими атрибутами.