I am currently learning Laravel and finding it really useful and interesting.
At the moment I am making a simple online application form.
What are the biggest advantages to doing things using the Laravel syntax like:
{{ Form::open(array('url' => 'foo/bar')) }}
As opposed to simply:
<form action="foo/bar">
Or:
echo Form::text('username');
Instead of:
<input type="text" name="username" />
The Laravel way must be better, I just wish to know why exactly?
Using built-in HTML helpers have many benefits:
Using Form::open
you add CSRF protection input hidden (by default)
Using form elements (inputs/textarea etc.) and withInput
method for Redirection allows you to easily fill in the form with the same data with almost no coding
If you use Redirect::route('form'->withInput();
and have input
text {{Form::text('username')}}
it will automatically set input's value the old data - you don't need to code it yourself checking it
Also if you want to match fields with labels its much easier:
{{ Form::label('username', 'Enter username') }}
{{ Form::text('username') }}
it will generate the following code:
<label for="username">Enter username</label>
<input name="username" type="text" id="username">
so as you see id will be created automatically
Probably there are some more. However the main disadvantage is that you need to learn and it's not portable in case you want to move your site to other Framework but each solution has pros and cons.
There are so many advantages of using Laravel
's Form
component but one useful advantage is that, when you just use this:
{{ Form::open(array('url' => 'foo/bar')) }}
{{ Form::close() }}
It automatically appends a hidden _token
field which is useful for CSRF
protection. otherwise you have to manually create the _token
field using echo Form::token()
or other way maybe. Also, when you use RESTful
routes then Laravel
's Form
component appends the corresponding hidden _method
field as well. Following note is taken from Laravel
website:
Note: Since HTML forms only support POST and GET, PUT and DELETE methods will be spoofed by automatically adding a _method hidden field to your form.
There are also other advantages like Form Model Binding
, generating form elements (specially select
) easily and many more. Read more about Form
on documentation.
BTW, the Redirect::back()->withInput()
doesn't deppend only on use of Form
component, if you use something like this, for example:
<input type='text' name='username' value='<?php echo Input::old('username') ?>' />
This will still work, the field will be repopulated on redirect back with inputs.
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