要在模板中編寫表單,可以使用“表單構造器”。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 動作。
表單寫好了,路由也定義了,現在可以填寫表單,然后點擊提交按鈕新建文章了。