5.2 首个表单

要在模板中编写表单,可以使用“表单构造器”。Laravel 中常用的表单构造器是 Form。在 app/views/articles/create.blade.php 文件中加入以下代码:

{{ Form::open() }}
    <p>
        {{ Form::text("title") }}
    </p>
    <p>
        {{ Form::text("text") }}
    </p>
    <p>
        {{ Form::submit("submit") }}
    </p>
{{ Form::close() }}

现在刷新页面,会看到上述代码生成的表单。在 Laravel 中编写表单就是这么简单!

在 Form 方法的块中,Form::text 创建了两个标签和两个文本字段,一个用于文章标题,一个用于文章内容。最后,Form::submit 创建一个提交按钮。

不过这个表单还有个问题。如果查看这个页面的源码,会发现表单 action 属性的值是 /articles/create。这就是问题所在,因为其指向的地址就是现在这个页面,而这个页面是用来显示新建文章表单的。

要想转到其他地址,就要使用其他的地址。这个问题可使用 Form::open 方法的 url 参数解决。在 Laravel 中,用来处理新建资源表单提交数据的动作是 store,所以表单应该转向这个动作。

修改 app/views/articles/create.blade.php 文件中的 Form::open,改成这样:

{{ Form::open(array("url" => "articles")) }}

这里,我们把 url 参数的值设为 articles 。对应的地址是 /articels,默认情况下,这个表单会向这个路由发起 POST 请求。这个路由对应于 ArticlesController 控制器的 store 动作。

表单写好了,路由也定义了,现在可以填写表单,然后点击提交按钮新建文章了。

文章导航