imp*_*335 12 php laravel laravel-4
我目前正在学习Laravel并发现它非常有用和有趣.
目前我正在制作一份简单的在线申请表.
使用Laravel语法执行操作的最大优点是:
{{ Form::open(array('url' => 'foo/bar')) }}
Run Code Online (Sandbox Code Playgroud)
与简单相反:
<form action="foo/bar">
Run Code Online (Sandbox Code Playgroud)
要么:
echo Form::text('username');
Run Code Online (Sandbox Code Playgroud)
代替:
<input type="text" name="username" />
Run Code Online (Sandbox Code Playgroud)
Laravel方式必须更好,我只想知道为什么?
Mar*_*łek 11
使用内置HTML帮助程序有许多好处:
使用Form::open您隐藏的CSRF保护输入(默认情况下)
使用表单元素(输入/文本区域等)和withInput重定向方法,您可以轻松地使用相同的数据填写表单,几乎不需要编码
如果您使用Redirect::route('form'->withInput();并输入文本{{Form::text('username')}},它将自动将输入值设置为旧数据 - 您无需自行编码检查它
此外,如果您想要使用标签匹配字段,则更容易:
{{ Form::label('username', 'Enter username') }}
{{ Form::text('username') }}
Run Code Online (Sandbox Code Playgroud)
它将生成以下代码:
<label for="username">Enter username</label>
<input name="username" type="text" id="username">
Run Code Online (Sandbox Code Playgroud)
所以你看到id会自动创建
可能还有更多.然而,主要的缺点是你需要学习并且它不可移植,以防你想将你的网站移动到其他框架,但每个解决方案都有利有弊.
还有用的这么多优点Laravel的Form组成部分,但一个有用的优点是,当你只是使用:
{{ Form::open(array('url' => 'foo/bar')) }}
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
它会自动附加一个_token对CSRF保护有用的隐藏字段.否则你必须_token使用echo Form::token()或以其他方式手动创建字段.此外,当您使用RESTful的路线,然后Laravel的Form成分追加相应的隐藏_method字段为好.以下说明来自Laravel网站:
注意:由于HTML表单仅支持POST和GET,因此将自动在表单中添加_method隐藏字段来欺骗PUT和DELETE方法.
还有其他优点,例如Form Model Binding,(特别select)轻松生成表单元素等等.了解更多关于Form上的文档.
顺便说一句,如果你使用这样的东西,Redirect::back()->withInput()它不会仅仅因为使用了Form组件,例如:
<input type='text' name='username' value='<?php echo Input::old('username') ?>' />
Run Code Online (Sandbox Code Playgroud)
这仍然有效,该字段将通过输入重定向重新定位.
| 归档时间: |
|
| 查看次数: |
1949 次 |
| 最近记录: |