13

通读这个 SO 线程,我读到我可以创建一个新宏来创建自定义表单输入。

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

感谢您的耐心和洞察力。

4

3 回答 3

33

简单的方法是

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

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

于 2017-06-26T12:09:37.007 回答
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']) !!} 
于 2016-01-16T11:01:21.530 回答
-2

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

{!! Html::decode(Form::label('firstName','FirstName: <sup>*</sup>')) !!}
{!! Form::text('firstName', null, ['class'=>'required']) !!}
于 2017-03-15T06:48:14.967 回答