Laravel5.5仿ThinkPHP的pathinfo传参示例
发布时间 - 2020-03-28 00:00:00 点击率:次ps:目前所能找到的方法,希望不会被大佬们鄙视...
1、我的nginx配置:
#test6 admin
server {
listen 80;
server_name admin.test6.local;
root "d:/data/www/test6/public/admin";
index index.html index.htm index.php;
error_page 404 /404.html;
location = /404.html {
return 404 'Sorry, File not Found!';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html; # windows dir
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ /Uploads/.*\.php$ {
deny all;
}
location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}
location ~ \.
php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}2、路由 /routes/admin.php
PS:目前用的方法是这样的
Route::get('/shop/goods_list', 'Shop\GoodsController@goods_list');
Route::get('/shop/goods_list/page/{page}/limit/{limit}', 'Shop\GoodsController@goods_list');
Route::get('/shop/goods_list/page/{page}/limit/{limit}/keyword/{keyword}', 'Shop\GoodsController@goods_list');3、基类 \app\Http\Controllers\Admin\Publi\BaseController.php
PS:请别吐槽那个Publi,我也很无奈啊..
middleware(function ($request, $next) {
//未登录的处理
//$this->dosomething($request);
//仿TP用pathinfo传参
$path=$request->path();
$this->pathinfo=$this->path_to_array($request,$path);
return $next($request);
});
}
/*路径转数组
*输入路径,如:http://admin.test6.local/shop/goods_list/page/3
* 返回数组,如:$array['page']=3; $array['keyword']='somekeyword';
*/
public function path_to_array(Request $request,$path=null){
$array=array();
if(strpos($path,'/')!==false){
$arr=explode('/',$path);
foreach($arr as $k=>$v){
if($k>0&&($k%2==0)){
$array[$v]=$arr[$k+1];
}
}
}
if(count($array)>0){
return $array;
}
}
}3、控制器 \app\Http\Controllers\Admin\Shop\GoodsController.php
namespace App\Http\Controllers\Admin\Shop;
use App\Http\Controllers\Admin\Publi\BaseController;
use Illuminate\Http\Request;
class GoodsController extends BaseController {
public function goods_list(Request $request){
//获取参数
$page=1;
$keyword='';
//当前页
if(is_array($this->pathinfo)){
//当前页
if (array_key_exists("page",$this->pathinfo)) {
$page=$this->pathinfo['page'];
}
//关键词
if (array_key_exists("keyword",$this->pathinfo)) {
$keyword=$this->pathinfo['keyword'];
}
}
dump($page);
dump($keyword);
exit;
}
}推荐:laravel教程
# php
# laravel
# nginx
# thinkphp
# http
# 关键词
# 我也
# 是这样
# 当前页
# 所能
# 很无奈
# 转数
# 大佬们
# try_files
# dir
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel distinct去重查询_Laravel Eloquent去重方法
5种Android数据存储方式汇总
如何在新浪SAE免费搭建个人博客?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何注册花生壳免费域名并搭建个人网站?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
如何在建站之星绑定自定义域名?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Mybatis 中的insertOrUpdate操作
详解Oracle修改字段类型方法总结
javascript中对象的定义、使用以及对象和原型链操作小结
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
如何快速上传建站程序避免常见错误?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
在centOS 7安装mysql 5.7的详细教程
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
太平洋网站制作公司,网络用语太平洋是什么意思?
JS碰撞运动实现方法详解
Laravel如何使用Telescope进行调试?(安装和使用教程)
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
详解Huffman编码算法之Java实现
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
潮流网站制作头像软件下载,适合母子的网名有哪些?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
移动端脚本框架Hammer.js
Swift中循环语句中的转移语句 break 和 continue
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何在宝塔面板中创建新站点?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel如何优化应用性能?(缓存和优化命令)
如何在阿里云ECS服务器部署织梦CMS网站?
javascript日期怎么处理_如何格式化输出
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
iOS正则表达式验证手机号、邮箱、身份证号等
详解Android图表 MPAndroidChart折线图
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何使用.env文件管理环境变量?(最佳实践)
JavaScript如何实现音频处理_Web Audio API如何工作?


php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}