养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Laravel 系列路由、闭包、控制器

时间:2024-10-21 23:08:22

Laravel系列路由、闭包、控制器

方法/步骤

1、Laravel5之后就把路由放到了learnlarav娣定撰钠el5/app/Http/routes.php这个醐蛑臀谁位置,我们先看一下目前路由中仅存的几行代码:Route::get('/',function(){returnview('welcome');});Route::auth();Route::get('/home','HomeController@index');中间的一行代码Route::auth();就是Auth系统自动注入的路由配置,我们不用深究,我们的注意力主要集中头三行和最后一行代码上。

Laravel 系列路由、闭包、控制器

2、闭包路由使用闭包作为此条请求的响应代码,方便灵活,很多简单操作直接在闭包里解决即可。例如“输出服务器当前时间”:Route::get('now',function(){returndate("Y-m-dH:i:s");

Laravel 系列路由、闭包、控制器

3、如果你想得到北京时间,请在learnlaravel5/config/app.php第55行左右把timezone设置为上海:'timezone'=>'Asia/Shanghai',

Laravel 系列路由、闭包、控制器

4、控制器@方法路由闭包路由虽然灵活强大,不过大多墙绅褡孛数场景下我们还是需要回归到MVC架构的:Rou墉掠载牿te::get('/home','HomeController@index');之后命名空间、类、方法是如何传递的呢?learnlaravel5/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php经过简单的追踪,我们找到了这个文件。让我们在dispatch方法中增加一行var_dump($controller);,刷新就可以看到页面上如下的输出:

Laravel 系列路由、闭包、控制器

5、Route::get('/find',function(){return"最新发现";});

Laravel 系列路由、闭包、控制器

6、Route::get('/home','HomeController@index');

Laravel 系列路由、闭包、控制器

7、最后一步Laravel使用了完整的面向对象程序架构,对控制器的调用进行了超多层封装,所以最简单地探测方式其实是手动抛出错误,这样就可以看到完整的调用栈:在HomeController的index方法里的return之前增加一行thrownew\Exception("会出现报错",1);,刷新页面,你将看到以下画面:

Laravel 系列路由、闭包、控制器

© 一点知识