 
以下是目前找到的laravel仿ThinkPHP的pathinfo传参示例方法,如果大佬有更多方法或者想法欢迎留言
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,我也很无奈啊..
	
	
<?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;
}
}
	
以上就是“Laravel5.5仿ThinkPHP的pathinfo传参示例”详细内容,想要获取更多laravel资讯或者教程欢迎关注编程学习网
	
扫码二维码 获取免费视频学习资料

- 本文固定链接: http://www.phpxs.com/post/7994/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
					查 看2022高级编程视频教程免费获取
				
			 
			








