编程语言
首页 > 编程语言> > php-如何为使用laravel表单生成器创建的select标签的选项指定HTML属性?

php-如何为使用laravel表单生成器创建的select标签的选项指定HTML属性?

作者:互联网

您可以为< select>设置HTML属性.本身,但< options>呢?

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

解决方法:

第一个参数是id和name属性,第二个参数是具有< select>值的数组,第三个参数是selected选项,第四个参数是具有HTML属性的数组.如果要设置名称,类或其他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>具有适当属性的视图标签.

标签:laravel,formbuilder,php
来源: https://codeday.me/bug/20191029/1958290.html