如何使用 Laravel Collective 在表单标签中包含 html?

How can I include html within a form label using Laravel Collective?

通读 this SO thread 我了解到我可以创建一个新宏来创建自定义表单输入。

我是 Laravel 开发的新手(大惊喜),这么小的东西似乎有点矫枉过正。有没有一种 "simpler" 的方法可以得到这样的东西:

blade模板

{!!Form::label('firstName', 'First Name<sup>*</sup>') !!}
{!! Form::text('firstName', null, ['class'=>'required']) !!} 

html

<label for="firstName">First Name*</label>
<input type="text" name="firstName" class="required">

或者,这是我只写 html,然后使用表单服务创建输入的情况吗?

感谢您的耐心和洞察力。

Form class 属性将始终被转义(它们在 Laravel 4 中并且仍然在 Laravel Collective 的 5+ 支持下),因此没有 HTML 是允许的。因为你的需求很简单,我建议只写简单的 HTML.

如果你想矫枉过正,也许在你的 AppServiceProvider.php:

Form::macro('labelWithHTML', function ($name, $html) {
    return '<label for="'.$name.'">'.$html.'</label>';
});

然后,在您的 Blade 模板中:

{!! Form::labelWithHTML('firstName', 'First Name<sup>*</sup>') !!}
{!! Form::text('firstName', null, ['class'=>'required']) !!} 

也许回答晚了,但你可以这样做:

{!! Html::decode(Form::label('firstName','FirstName: <sup>*</sup>')) !!}
{!! Form::text('firstName', null, ['class'=>'required']) !!}

执行此操作的简单方法是

{!! Form::label('labelFor','labelText',[],false) !!} 

最后一个参数是$escape_html,默认值为"true"。

{!! Html::decode(表格::标签('email', 'E-Mail Address', ['class' => 'text-muted'])) !!}

解决这类问题要好得多