Laravel 之 控制器(Controller)
一、控制器所在位置
/app/Http/Controllers
二、创建控制器
可以直接使用 Laravel 内置的命令生成很多代码,例如控制器;根目录下的artisan 就是 laravel 的命令行接口;
//使用命令创建控制器
php artisan make:controller VensController
运行结果会生成 app/Http/Controllers/VensController.php 文件

//命令加上 --resource 会自动生成一些方法;
php artisan make:controller ArticleController --resource
如果有报错 提示:Controller already exists! 查看创建的控制器是否存在!下面是生成后的文件内容
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ArticleController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // echo "123122312";exit; } /** * 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 规范生成的格式;除了 GET POST 它还包含了一大堆请求方式;如 PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS
三、路由配置注意
Laravel 8路由配置方式:
use App\Http\Controllers\UserController; Route::get('/users', [UserController::class, 'index']);
Laravel 6/7路由配置方式:
Route::get('/user', 'UserController@index');
请注意Laravel 8中必须要先引用使用到的控制器,或者在定义路由时加上控制器的命名空间,如果仍然想使用Laravel 6/7版本的路由配置方式,那么取消RouteServiceProvider.php中对$namespace的注释即可。
// protected $namespace = 'App\\Http\\Controllers';//取消对这句代码的注释。

浙公网安备 33010602011771号