控制器
- 创建自定义路由文件,routes->controller.php路由,然后在app->providers的routes provider里面添加(ctrl alt c 复制文件路径)
- http->controllers -> controller.php 控制器
//访问controllr会调用Controller控制器的 index方法
Route::get('controller','Controller@index')
//多模块在控制器名前增加命名空间
//控制器本质是通过命名空间访问的,默认思app/http/controllers
Route::get('admin','Admin\TestController@index')
//路由组命名空间
Route::namespace('Admin')->group(function(){
Route::get('admin','TestController@index');
})
- 创建控制器 php artisan make:controller 控制器名, 如果带有多模块,需要增加目录 php artisan make:controller Admin/SeconController
- 使用同命名空间下的类,不需要使用use引入命名空间
- 控制期内使用return会打印到界面上
单控制器
- php artisan make:controller ShowProfile --invokable
- 控制器内会自动创建一个__invoke魔术方法,当以函数方式调用对象时,会被执行。可以使用controller@__invoke访问
- 特点: 只写控制器名不写放方法名,会自动调用__invoke
- 原理,路由默认的第二个参数为回调函数,如果只写控制器名则为调用一个此名称的函数,则将控制器类当做函数进行了调用
资源控制器
- php artisan make:controller Resource --resource
- 会自动创建update store show等方法
- 使用资源路由进行调度
Route::resource('resource','Resource'); //可以访问到resource控制器的index方法,GET的请求方式,POST方式会访问store方式 put访问update等
- translate翻译插件 选中 ctrl+shift+y进行翻译
- php artisan route:list 查看所有路由
控制器中间件
- 路由器中间件 route::get()->middlewar();
- __construct(){$this->middleware('first');}需要在构造方法中调用
- $this->middleware()->only(‘test’);只允许确定的方法中使用,只在访问test时使用
- $this->middleware()->except('index'); 除了index方法都使用
网友评论