首先,程序中要有個頁面用來新建文章。一個比較好的選擇是 /articles/create。這個路由前面已經定義了,可以訪問。打開 http://localhost:8000/articles/create ,會看到如下的路由錯誤:
[](https://camo.githubusercontent.com/db19b58014f50137745188f08030d19828908592/687474703a2f2f6472702e696f2f66696c65732f353430653536333662396264352e706e67)
產生這個錯誤的原因是,沒有定義用來處理該請求的控制器。解決這個問題的方法很簡單:創建名為 ArticlesController 的控制器。執行下面的命令即可:
~~~
$ php artisan controller:make ArticlesController
~~~
打開剛生成的 app/controllers/ArticlesController.php 文件,控制器就是一個類,繼承自 BaseController。在這個 ArticlesController 類中定義了對應的資源動作。動作的作用是處理文章的 CRUD 操作。
修改 ArticlesController.php 文件中的
~~~
public function create()
{
//
}
~~~
為
~~~
public function create()
{
return View::make('articles.create');
}
~~~
> 在 PHP 中,方法分為 public、private 和 protected 三種,只有 public 方法才能作為控制器的動作。
現在刷新 http://localhost:8000/articles/create ,會看到一個新錯誤:
[](https://camo.githubusercontent.com/6edabfd4b3d113c6a358a2db72f0fd22b237aa3a/687474703a2f2f6472702e696f2f66696c65732f353430653536613832353437622e706e67)
產生這個錯誤的原因是,Laravel 希望這樣的常規動作有對應的視圖,用來顯示內容。沒有視圖可用,Laravel 就報錯了。
新建文件 app/views/articles/create.blade.php,寫入如下代碼:
~~~
<h1>New Article</h1>
~~~
再次刷新 http://localhost:8000/articles/create , 可以看到頁面中顯示了一個標頭。現在路由、控制器、動作和視圖都能正常運行了。接下來要編寫新建文章的表單了。