laravel5.8笔记四:路由
laravel框架,必须先设置路由,才可以访问内部的控制器部分。
路由文件:routes/web.php.
基本路由
Route::get('/user', 'UserController@index');
可用的路由方法
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
重定向路由
// 重定向 访问http://claravel57.com/da 会跳转到http://claravel57.com/there
Route::redirect('da','there',);
Route::redirect('db','http://www.baidu.com',);
视图路由
Route::view('/welcome', 'welcome');
Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
路由参数
Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { 
  // 
});
路由传参数
// 必选传参数
Route::get('user/{id}', function ($id) {
return 'User '.$id;
});
// 可选传参数,由问号决定
Route::get('user/{id?}', function ($id) {
return 'User '.$id;
});
还有很多的路由方式,可以查阅官方手册
路由在实际项目中应用
场景一:单模块路由(Index)
Route::get('/user','UserController@index');
场景二:多个模块路由 (Admin,Index,Api),采用群组路由
/*
* api路由群组
* 访问格式 http://localhost/xxx/
* @param prefix 路由别名
* @param namespace 别名对应的命名空间(Admin,Index,Api)
* */
// 路由群组 访问:http://localhost/admin/goods
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'] ,function () {
//Admin模块
//Route::get('/控制名/方法','IndexController@index');
Route::get('/goods/','IndexController@index'); });
// 路由群组 访问:http://localhost/index/index
Route::group(['prefix' => 'index', 'namespace' => 'Index'] ,function () {
//Index模块
Route::get('/index','IndexController@index'); });
// Api模块路由群组 访问:http://localhost/api/info
Route::group(['prefix' => 'api', 'namespace' => 'Api'] ,function () {
//api模块
Route::get('/info/','IndexController@index');
});
如果不使用群组路由,路由格式
Route::get('/admin/goods/index','Admin\IndexController@index');
Route::get('/Index/index/index','Admin\IndexController@index');
Route::get('/Api/info/index','Admin\IndexController@index');
使用群组路由的好处:每个模块下的路由更加美观,敲打的代码更少;多模块部署推荐使用群组路由
场景三:路由与控制器之间的传参
单个参数:Route::get('user/{id}', function ($id) { return 'User '.$id; });
多个参数:Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); // 此方法有弊端(非常多的参数时候,路由会写的很长),不推荐使用,可以使用一下传参数
路由:Route::get('user/', function ($id) { return 'User '.$id; });
// 页面Get传参数
http://xx.com?id=1&name=MR.zhou&age=18&sex=1
// 路由web.php
Route::get('/Api/info/index','Admin\IndexController@index');
// 控制器
public function index(){
$param = Request()->input();
$name = $param['name']
}
场景四:路由引用中间件(登陆检测)
Route::get('/index','IndexController@index')->middleware('goods');
场景五:路由回滚
// 路由回滚 定义一些不存在的页面
Route::fallback(function () {
return '';
});
容易报错
除了默认路由,其他路由模式无法访问
server {
        listen       ;
        server_name  l58.com;
        root   "D:/phpStudy/PHPTutorial/WWW/composer/l58/public";
        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
            try_files $uri $uri/ /index.php?$query_string;   // 路由访问失效,加上此处
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}
提示类不存在:Class App\Http\Controllers\Index/IndexController does not exist
Route::get('/Api/info/index','Admin/IndexController@index');   // 错误
Route::get('/Api/info/index','Admin\IndexController@index');  // 正确
laravel5.8笔记四:路由的更多相关文章
- laravel5.8笔记四:中间件
		
应用场景:检测登陆,控制器加载数据,传递常量 命令 //中间件创建命令 php artisan make:middleware Check 注意: 1.需要注册中间件 2.中间件命名不能重复 mi ...
 - C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
		
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
 - 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
		
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
 - IOS学习笔记(四)之UITextField和UITextView控件学习
		
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
 - laravel5.3 笔记一
		
laravel5.3 笔记 安装环境 laravel环境,laravel中文学习论坛上面有相关的教程 创建应用 laravel new blog 其中blog就是你的应用的名字 数据迁移 php ar ...
 - java之jvm学习笔记四(安全管理器)
		
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
 - Java学习笔记四---打包成双击可运行的jar文件
		
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
 - Java加密与解密笔记(四) 高级应用
		
术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...
 - Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
		
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
 
随机推荐
- python正则表达式(一)
			
---恢复内容开始--- 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计 ...
 - Java爬取校内论坛新帖
			
Java爬取校内论坛新帖 为了保持消息灵通,博主没事会上上校内论坛看看新帖,作为爬虫爱好者,博主萌生了写个爬虫自动下载的想法. 嗯,这次就选Java. 第三方库准备 Jsoup Jsoup是一款比较好 ...
 - .NET项目引用黄色小三角以及找不到依赖的解决方法
			
上图,问题描述: 经过查证,这个是引用的项目框架版本和本项目框架版本不一致的症状. 解决办法: 点击项目右键属性,调整版本使两个项目的版本一致 问题解决.good! ----------------- ...
 - html冲刺
			
html知识点回顾与面试题<!--1.<DOCTYPE>告诉浏览器当前文档要以何种HTML或者XHTML规范解析2.语义标签strong 粗体em 斜体del 删除线ins 下划线 ...
 - 介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy
			
在开发上位机下位机通讯程序时,有一个好的监控工具会事半功倍.特在网上找了几款串口监控软件,作了简单对比: 一.Device Monitoring Studio 网址:http://www.hhdsof ...
 - javaScript系列 [03]-javaScript原型对象
			
[03]-javaScript原型对象 引用: javaScript是一门基于原型的语言,它允许对象通过原型链引用另一个对象来构建对象中的复杂性,JavaScript使用原型链这种机制来实现动态代理. ...
 - Python的ctypes 和pyinstaller
			
这几天在学习python的爬虫, 无意中看到一篇博文 Python爬虫之自制英汉字典 发现里面的ctypes 和pyinstaller 还不了解,这边文章说白了就是你输入英文, python读取你的输 ...
 - HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇
			
一.开篇 上一篇<HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性.非功能性.关键约束)-上篇>我们详细分析了在架构分析过程中我们需要注意的内容,架构过程的方法论及 ...
 - Project with Match in aggregate not working in mongodb
			
[问题] 2down votefavorite I am trying to fetch data based on some match condition. First I've tried th ...
 - 如何在 PhpStorm 使用 Code Generation?
			
實務上開發專案時,有一些程式碼會不斷的出現,這時可靠 PhpStorm 的 Code Generation 幫我們產生這些 code snippet,除此之外,我們也可以將自己的 code snipp ...