Reading through this SO thread I have read that I can create a new macro to create custom form inputs.
I am brand new to Laravel development (big surprise) & it seems a tad overkill for such a small thing. Is there a "simpler" way to have something like this:
blade template
{!!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">
Or, is this a case where I just write the html, and then use the form service to create the inputs?
Thank you for your patience and insight.
The simple way to do this is
{!! Form::label('labelFor','labelText',[],false) !!}
the last parameter is $escape_html which default value is "true".
The Form
class attributes will always be escaped (they were in Laravel 4 and still are with Laravel Collective's 5+ support), therefore no HTML is allowed. Since you're needs are so simple, I'd suggest just writing plain HTML.
If you want overkill, maybe something like this in your AppServiceProvider.php
:
Form::macro('labelWithHTML', function ($name, $html) {
return '<label for="'.$name.'">'.$html.'</label>';
});
Then, in your Blade templates:
{!! Form::labelWithHTML('firstName', 'First Name<sup>*</sup>') !!}
{!! Form::text('firstName', null, ['class'=>'required']) !!}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With