首页 > php框架 > Laravel > 正文

Laravel5.5仿ThinkPHP的pathinfo传参示例

藏色散人
发布: 2020-03-28 09:00:32
转载
2934人浏览过

Laravel5.5仿ThinkPHP的pathinfo传参示例

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

立即学习PHP免费学习笔记(深入)”;

芦笋演示
芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

芦笋演示 34
查看详情 芦笋演示

PS:请别吐槽那个Publi,我也很无奈啊..

<?php
 
namespace App\Http\Controllers\Admin\Publi;
 
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
class BaseController extends Controller
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 
    //构造函数
    public function __construct() {
        $this->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教程

以上就是Laravel5.5仿ThinkPHP的pathinfo传参示例的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:csdn网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号