Laravel 4.2子域路由参数

时间:2016-03-11 11:44:13

标签: laravel parameters routes subdomain

我使用xampp在我的localhost上设置了一些子域名。 这是我的子域名路线:

    Route::group(['domain' => '{subdomain}.localhost'], function(){
    Route::get('home',                array('as'=>'sub.home',         'uses'=>'SubdomainController@home')
    Route::get('gallery/{id}',     array('as'=>'sub.gallery',        'uses'=>'SubdomainController@gallery'));
});

这些是我的链接:

{{ URL::route('sub.home', array($subdomain)) }}
{{ URL::route('sub.gallery', array($subdomain,2)) }}

“home-route”按预期工作,但无论我做什么,gallery-route参数“2”都不会传递给方法,而是显示子域名。

任何人都可以指出我正确的方向。

E D I T 当我向方法添加$ subdomain时,我得到正确的$ id。 现在新的问题是如何在不向每个方法注入subdomain-param的情况下执行此操作。

public function gallery($subdomain, $id) {
    die($id);//output is now "2"
}

1 个答案:

答案 0 :(得分:1)

解决您的第一个问题:您应该在行动中使用变量,例如from Laravel sub-domain official documentation

Route::group(['domain' => '{account}.myapp.com'], function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});

回答第二个问题:您可以尝试对子域进行硬编码:

Route::group(['domain' => 'something.localhost'], function(){

如果您使用{subdomain}之类的变量,则无论如何都必须将其捕获。