首先,程序中要有个页面用来新建文章。一个比较好的选择是 /articles/create。这个路由前面已经定义了,可以访问。打开 http://localhost:8000/articles/create ,会看到如下的路由错误:
[![](https://camo.githubusercontent.com/db19b58014f50137745188f08030d19828908592/687474703a2f2f6472702e696f2f66696c65732f353430653536333662396264352e706e67)](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)](https://camo.githubusercontent.com/6edabfd4b3d113c6a358a2db72f0fd22b237aa3a/687474703a2f2f6472702e696f2f66696c65732f353430653536613832353437622e706e67)
产生这个错误的原因是,Laravel 希望这样的常规动作有对应的视图,用来显示内容。没有视图可用,Laravel 就报错了。
新建文件 app/views/articles/create.blade.php,写入如下代码:
~~~
<h1>New Article</h1>
~~~
再次刷新 http://localhost:8000/articles/create , 可以看到页面中显示了一个标头。现在路由、控制器、动作和视图都能正常运行了。接下来要编写新建文章的表单了。