前面学习了路由可以分发请求还可以引入html页面,这些都可以在 route/web.php 中搞定。
但是如果项目设计的业务很繁杂,都写在路由里会非常臃肿难以维护,于是今天的主角 Controller 控制器的价值就很明显了,把业务逻辑写在控制器中,路由只负责转发请求到控制器。
都9102年了既然用上了现代话框架必须玩点高逼格的方式使用命令行的方式创建控制器
好了让我们用 php artisan 来创建控制器在项目根目录执行下列代码
php artisan make:controller TestController
如果最近没做坏事,洗过脸的话会看到成功的提示
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
//
}
不但自动创建了文件还定义了命名空间并且继承好了父级控制器,这样我们直接写CURD就好了
接下来我们给上面的命令加个 --resource 选项
php artisan make:controller TestController --resource
如果直接运行的话是会报错提示Controller already exists!
这是因为我们刚已经创建过 TestController了,所以我们需要进入项目根目录执行下面的命令把刚刚创建的文件删除掉
cd app/Http/Controllers/ && rm -rf TestController.php
删除掉后再回到项目根目录执行刚刚的命令
如果人品正常,那么会再次生成一个 app/Http/Controllers/TestController.php 文件,打开会是这个样子
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
怎么样逼格高吧,不但增删改查的方法都定义好了,连注释都写好了,这其实是按 RESTful 规范生成的格式。