- 上篇文章 PHP - Laravel 路由使用(详细) 。
一、控制器创建
- 控制器文件写到哪?
存放文件夹:app/Http/Controllers
- 控制器文件如何命名?
命名:使用大驼峰,同时注意命名空间和基类控制器的引入
。 - 控制器文件创建命令
// 一遍控制器 $ php artisan make:controller 控制器名(LoginController) // 资源控制器 $ php artisan make:controller 控制器名(TestController) --resource // 可简写 $ php artisan make:controller 控制器名(TestController) --r // 如果需要将控制器放到指定目录 // 例如:`app/Http/Controllers/Admin` $ php artisan make:controller Admin/控制器名(LoginController)
<?php // 命名空间 namespace App\Http\Controllers\Admin; // 命名空间要写在 use 前面 use Illuminate\Http\Request; use App\Http\Controllers\Controller; class LoginController extends Controller { // 控制器内部方法属性 }
二、定义路由访问控制器中的方法
- 路由样式
Route::请求方式('url', 匿名函数); Route::请求方式('url', '控制器名称@操作方法'); Route::请求方式('url', '命令空间\控制器名称@操作方法');
- 通过创建控制器命令,创建两个控制器
// 创建一个登录控制器,在根目录 Controllers 中 $ php artisan make:controller LoginController // 创建一个退出控制器,在 Controllers/Admin 中,Admin 文件需要手动创建 $ php artisan make:controller Admin/LogoutController
- 路由绑定控制器并调用指定方法,
web.php
文件中:
// 路由控制器 - 登录 // 如果控制器类在 Controllers 根目录下,则不用加命令空间 Route::get('login', 'LoginController@index') -> name('login'); // 路由控制器 - 退出 // 如果控制器类在 Controllers 根目录下面其他文件夹中,则必须加命令空间 Route::get('logout', 'Admin\LogoutController@index') -> name('logout');
注意:方法带参数跟之前一致
// 路由控制器 - 登录 // 如果控制器类在 Controllers 根目录下,则不用加命令空间 Route::get('login/{username?}', 'LoginController@index') -> name('login');
三、路由命令空间分组
- 以上面退出登录路由为例子
// 路由控制器 - 退出 // 如果控制器类在 Controllers 根目录下面其他文件夹中,则必须加命令空间 Route::get('logout', 'Admin\LogoutController@index') -> name('logout'); // 将上面路由进行命名空间分组 Route::group(['namespace'=>'Admin'], function () { Route::get('logout', 'LogoutController@index') -> name('logout'); });