Laravel 路由,只需定义一次以后模块化,无需每次写方法写控制器都要写一遍路由,RSTful API

Route::pattern('version_id', '[0-9]+');
Route::group(['prefix'=>'v{version_id}'],function ($router){
    $router->any('/{module}/{controller?}/{action?}/{id?}',function() use ($router){
        $version='V'.Route::input('version_id');
        $module=Route::input('module');
        $controller=Route::input('controller');
        $action=Route::input('action');
        $id=Route::input('id');
        if(Route::has($controller)){
            return redirect($controller);
        }else{
            $realcontroller="App\\Http\\ApiControllers\\".$version.'\\'.ucwords($module)."\\".ucwords($controller)."Controller";
            if (!class_exists($realcontroller)){
                return view('error.404');
            }else{
                $ctrl = \App::make($realcontroller);
                if(method_exists($ctrl,$action)){
                    return \App::call([$ctrl, $action],['id'=>$id]);
                }elseif(method_exists($ctrl,$id)){
                    return \App::call([$ctrl, $id],['action'=>$action]);
                }else{
                    $data=$_REQUEST;
                    $data['id']=$id;
                    $data['action']=$action;
                    return \App::call([$ctrl, 'undefined'],['data'=>$data]);
                }
            }
        }
    });
});

访问示例

www.xxx.com/api/v1/pmapp/user/myinfo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值