2016-01-06 5 views
7

Чтение через this SO thread Я прочитал, что я могу создать новый макрос для создания пользовательских входных форм.Как включить html в ярлык формы, используя Laravel Collective?

Я совершенно новый для развития 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

Атрибуты класса Form всегда будут экранированы (они были в Laravel 4 и все еще с поддержкой 5+ Laravel Collective), поэтому HTML не допускается. Поскольку ваши потребности настолько просты, я бы предложил просто написать простой HTML.

Если вы хотите избыточна, может быть что-то подобное в вашем AppServiceProvider.php:

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

Затем в шаблонах клинка:

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

Лично я бы использовал простой HTML для ярлыка, но все равно использую форму :: текст для поля ввода. Он добавляет старый вход и т. Д. –

-1

Может быть, это поздно, чтобы ответить, но вы можете сделать это:

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

простой способ сделать это

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

Последний параметр - $ escape_html, значение по умолчанию - «true».

+1

Это должен быть выбранный ответ, это правильный, встроенный способ для этого. –

+0

Я согласен, что это лучший ответ, с оговоркой, что четвертый аргумент доступен только в 5.2+. –