Php 拉维形式方法与传统编码

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帮助程

我目前正在学习Laravel,并发现它非常有用和有趣

目前,我正在制作一份简单的在线申请表

使用Laravel语法进行操作的最大优势是什么,例如:

{{ Form::open(array('url' => 'foo/bar')) }}
而不是简单地:

<form action="foo/bar">
而不是:

<input type="text" name="username" />


Laravel方法肯定更好,我只是想知道确切的原因?

使用内置HTML帮助程序有很多好处:

  • 使用
    Form::open
    可以添加隐藏的CSRF保护输入(默认情况下)

  • 使用表单元素(inputs/textarea等)和
    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') ?>' />