Php 拉维形式方法与传统编码
我目前正在学习Laravel,并发现它非常有用和有趣 目前,我正在制作一份简单的在线申请表 使用Laravel语法进行操作的最大优势是什么,例如:Php 拉维形式方法与传统编码,php,laravel,laravel-4,Php,Laravel,Laravel 4,我目前正在学习Laravel,并发现它非常有用和有趣 目前,我正在制作一份简单的在线申请表 使用Laravel语法进行操作的最大优势是什么,例如: {{ Form::open(array('url' => 'foo/bar')) }} 而不是简单地: <form action="foo/bar"> 而不是: <input type="text" name="username" /> Laravel方法肯定更好,我只是想知道确切的原因?使用内置HTML帮助程
{{ Form::open(array('url' => 'foo/bar')) }}
而不是简单地:
<form action="foo/bar">
而不是:
<input type="text" name="username" />
Laravel方法肯定更好,我只是想知道确切的原因?使用内置HTML帮助程序有很多好处:
Form::open
可以添加隐藏的CSRF保护输入(默认情况下)withInput
方法进行重定向,您可以轻松地用相同的数据填充表单,几乎不需要编码
如果使用Redirect::route('form'->withInput();
并具有输入
text{{Form::text('username')}}
它将自动为旧数据设置输入值-您不需要自己编写代码来检查它{{ Form::label('username', 'Enter username') }}
{{ Form::text('username') }}
它将生成以下代码:
<label for="username">Enter username</label>
<input name="username" type="text" id="username">
输入用户名
如您所见,id将自动创建可能还有更多。然而,主要的缺点是你需要学习,如果你想将你的站点移动到其他框架,它是不可移植的,但是每个解决方案都有优点和缺点。使用Laravel的
表单组件有很多优点,但是一个有用的优点是,当你只使用这:
{{ Form::open(array('url' => 'foo/bar')) }}
{{ Form::close() }}
它会自动附加一个隐藏的\u令牌
字段,该字段对CSRF
保护非常有用。否则,您必须使用echo Form::token()手动创建\u令牌
字段
或其他方式。此外,当您使用RESTful
路由时,Laravel
的表单
组件也会附加相应的隐藏\u方法
字段。以下注意事项摘自Laravel
网站:
注意:由于HTML表单只支持POST和GET、PUT和DELETE
方法将通过自动添加_method隐藏字段进行欺骗
以你的形式
还有其他优势,如表单模型绑定
,轻松生成表单元素(特别是选择
),等等。请阅读有关表单
的更多信息
顺便说一句,Redirect::back()->withInput()
不仅仅依赖于Form
组件的使用,例如:
<input type='text' name='username' value='<?php echo Input::old('username') ?>' />
我发现的一个极好的优点是,如果您执行类似于Redirect::back()->withInput();
的操作,它将重定向回您的表单,并自动为您填充以前输入的值。此外,您可以使用{form::model('foo')}自动用模型数据填充这些表单
因此->withInput在用户忘记必填字段并将其发送回表单时非常有用,同时他们输入的所有其他数据都已填写?@imperium2335是,如果您验证用户输入(通常是这样做的话)有些字段丢失或格式错误,您可以使用withInput重定向,所有字段都将自动填充以前的值,而无需任何额外编码。有没有办法让Laravel记住为“选择”选择的选项?我可以记住所有其他类型的字段,但它似乎不适用于“选择”。@imperium2335打开一个关于您的代码和详细信息的另一个问题什么不起作用,因为它也适用于SELECTS。今晚我将再次尝试,如果它仍然不起作用,我将按照您的建议执行,谢谢。
<input type='text' name='username' value='<?php echo Input::old('username') ?>' />