账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Laravel5如何在路由中传参给控制器?不适用URL传参方法
    34
    0

    需求是以二级域名且城市首拼音代替掉城市全拼音
    即 www.test.com/shenzhen/xx >> sz.test.com/xx

    项目之前的路由是这样写的

    //如 $cityFullName = shenzhen
    Route::get("{cityFullName}/abc_{where}.htm", 'Controller@abc');

    这需求是临时改动,以后还原的。我以group来处理,想着那之前的路由只要复制一份再小改就可以了

    Route::group(['domain' => '{citySortName}.test.com'], function () {
        $cityName = ['sz'=>'shenzhen', 'gz'=>'guangzhou']; //城市名转换 可写死
    
        //这里如何把$cityName[$citySortName]给传到function的第一个参数同时不影响where的传递?
        Route::get('abc_{where}.htm', 'Controller@abc');
    }

    控制器里的代码是

    public function abc(Request $request, $cityFullName, $where='100000'){
        // function
    }

    直接这样的话$cityFullName是能接收到首拼音的,如果在控制器里把接收到的首拼音再转回全拼音也可以,但是量挺大的,而且以后还原也是累,所以能不能直接在路由里先转换好并传进去?试过用中间件想把请求参数重新修改再给返回去但也没搞好。

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部