1 <?php 23 //可选参数绑定 45 Route::get('user/{userid?}', function($userid=null){ 6return 'userid is '.$userid; 7 }); 89 访问url:http://127.0.0.1/laravel/public/user/username10 输出:userid is username11 12 访问url:http://127.0.0.1/laravel/public/user13 输出:userid is14 15 可选参数绑定使得路由很灵活(3)、路由参数过滤(用正则表达式对传入的参数进行过滤)
1 <?php 23 /* 4 参数过滤 5 */ 67 //单个参数过滤 8 Route::get('num/{num?}', function($num=15){ 9return 'this num is '.$num;10 })->where('num','[0-9]+');11 12 访问url:http://127.0.0.1/laravel/public/num/513 返回输出:this num is 514 15 访问url:http://127.0.0.1/laravel/public/num16 返回输出:this num is 1517 18 访问url:http://127.0.0.1/laravel/public/num/fhdja19 页面报错20 21 //多个参数过滤22 Route::get('info/{name}/{age?}', function($name,$age=null){23return 'name is '.$name.', age is '.$age;24 })->where(['name' => '[a-zA-Z]+', 'age' => '[1-9]+']);25 26 可使用数组形式过滤多个参数4、路由别名给路由通过['as' => 'alias']数组使用别名后,可通过route('别名')生成url,请看代码理解:
1 <?php 23 //路由别名 45 Route::get('student/info',['as' => 'studentInfo' ,function(){ 67//通过route('studentInfo')生成完成url后返回 8return route('studentInfo'); 9 10 }]);11 12 13 访问url:http://127.0.0.1/laravel/public/student/info14 页面返回:http://127.0.0.1/laravel/public/student/info15 16 注:别名的好处在于,以后在控制器中使用route('别名')的方式生成url后,即便修改了路由的名字,也不用再修改控制器程序,因为通过别名程序能自动生成修改后的url5、路由群组通过关键字group创建路由群组
1 <?php 23 /* 4 *路由群组 5 */ 67 Route::group(['prefix' => 'admin'], function(){ 89//此时的访问地址:http://127.0.0.1/laravel/public/admin/student/info10Route::get('student/info',['as' => 'studentInfo' ,function(){11return route('studentInfo');12}]);13 14//此时的访问地址:http://127.0.0.1/laravel/public/admin/info/yuwenbo/2015Route::get('info/{name}/{age?}', function($name,$age=null){16return 'name is '.$name.', age is '.$age;17})->where(['name' => '[a-zA-Z]+', 'age' => '[1-9]+']);1819 });20 21 此时的访问地址url必须要加上群组前缀,否则将不能访问6、路由中输出视图通过view()函数输入视图
1 <?php 23 /** 4 * 路由中输出视图 5 */ 67 //框架的欢迎界面路由 89 Route::get('/',function(){10return view('welcome');11 });12 13 访问url:http://127.0.0.1/laravel/public14 浏览器显示laravel的欢迎界面15 16 17 //做如下修改18 Route::get('welcome',function(){19return view('welcome');20 });21 22 修改后访问url:http://127.0.0.1/laravel/public/welcome23 浏览器同样显示laravel的欢迎界面一般情况是不会在路由中输出视图的 。
五、控制器控制器目录app/Http/Controller,此目录下有一个基本的控制器Controller,新增的控制器统一继承此Controller;
命名空间:namespce AppHttpController;
命名规则:控制器文件名跟类名统一首字母大写,以 控制器名+Controller 为命名规则,比如新建一个控制器 :AdminController.php
1 <?php 2 /** 3* Created by PhpStorm. 4* User: Administrator 5* Date: 2018/8/25/025 6* Time: 0:51 7*/ 89 namespace AppHttpControllers;10 11 class AdminController extends Controller12 {13public function index()14{15return view('admin/index');16}17 }18 19 20 新建控制器AdminController继承于基类Controller1、路由关联控制器,通过路由访问控制器程序:
1 <?php 23 //路由关联映射控制器方法一: 45 Route::get('admin/index', 'AdminController@index'); 678 //路由关联控制器方法二: 9 10 Route::get('admin/index', ['uses' => 'AdminController@index']);11 12 13 //路由别名关联控制器:14 15 Route::get('admin/index', [16'uses' => 'AdminController@index',17'as' => 'adminindex'18 ]);2、路由关联控制器进行参数绑定:
1 //路由书写 route.php 2 <?php 3 //结合之前学习的参数过滤 4 Route::get('admin/index/{num}', [ 5'uses' => 'AdminController@index', 6'as' => 'adminindex' 7 ])->where('num', '[0-9]+'); 89 ?>10 11 12 13 //控制器代码 AdminController.php14 <?php15 /**16* Created by PhpStorm.17* User: Administrator18* Date: 2018/8/25/02519* Time: 0:5120*/21 namespace AppHttpControllers;22 23 class AdminController extends Controller24 {25public function index($num)26{27return 'num is '.$num;28}29 }30 31 ?>32 33 访问url:127.0.0.1/laravel/public/admin/index/534 页面输出:num is 5
推荐阅读
- 10分钟搭建基于Spring Cloud的微服务框架
- Ceph块存储之RBD
- Tomcat应用配置之web.xml
- 趣谈龙井茶与虎跑泉之由来
- 趣谈台湾冻顶乌龙茶之来历故事
- 健康饮食 宁海开元推出茶之韵美食节
- 茶叶趣事之成败皆因嗜茶
- 肾病低蛋白饮食
- 信阳国际茶文化节将上演信阳时空之旅
- 个茶字妙解万余户茶农的品牌之困
