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

时间:2016-01-06 16:45:38

标签: laravel-5.2 laravelcollective

阅读this SO thread我已经读过我可以创建一个新宏来创建自定义表单输入。

我是Laravel开发的全新(大惊喜)&对于这么小的事情来说,这似乎有点过头了。有这样一种“更简单”的方法:

刀片模板

{!!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,然后使用表单服务创建输入的情况吗?

感谢您的耐心和洞察力。

3 个答案:

答案 0 :(得分:20)

执行此操作的简单方法是

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

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

答案 1 :(得分:5)

Form类属性将始终被转义(它们在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']) !!} 

答案 2 :(得分:-1)

也许现在回答很晚,但你可以这样做:

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