Laravel 學習筆記(9) - Form 表單

Form

在使用 Model 存取資料庫前,我們要先學會怎麼建立表單 (Form) 及輸入資料。

建立表單

開啟 app/views/home.blade.php,修改如下:
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ $title }}</title>
</head>
<body>
    {{Form::open(['url'=>'/', 'method'=>'post'])}}
    {{Form::label('title', 'Title')}}<br>
    {{Form::text('title')}}<br>
    {{Form::label('content')}}<br>
    {{Form::textarea('content')}}<br>
    {{Form::submit('發表文章')}}
    {{Form::close()}}
</body>
</html>
我們可以使用 Form 類別來產生表單,首先要有 open() 及 close(),其他元件則放在其中。

常用元件:
  • label:用來顯示一段文字,通常放在文字輸入框之前,用以說明。
  • text:單行文字輸入框。
  • textarea:多行文字輸入框。
  • submit:執行送出的按鈕。
還有其他許多元件,之後用到再說明。

open() 方法的參數是一個陣列,第一個 url 表示要將資料送到哪個網址去處理。第二個 method 預設是 post。使用 post 通常用來新增資料;put 用來更新資料;delete 則用來刪除資料。

在 Laravel 中,get、post、put、delete 是有特定行為的。

送出表單

接下來要把表單的資料送進資料庫。我們要新增一個 route 來處理表單送來的資料。

開啟 app/routes.php,加入:
Route::post('/', 'HomeController@store');
要接收表單送過來的資料,要使用 Route::post() 方法。接著在 HomeController 新增一個 store 方法來處理。如下:
public function store()
{
    $input = Input::all();
    return $input['title'];
}
這裡我們先簡單的測試是否能取得到使用者輸入的值。執行後,應該會顯示 title 的值。利用 Input 類別,可以取得表單的資料。Input::all() 表示取得全部欄位的資料,以陣列儲存,所以取值方式如同陣列 $input['title']

你也可以使用 Input::get('title');Input::get('title', '預設值'); 的方法取值。

這裡先有個 Form 如何製作及處理的概念,之後就要來實作了。
本文網址:http://blog.tonycube.com/2015/01/laravel-9-form.html
Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀

我要留言

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。