【问题标题】:Laravel 4.2 subdomain route-parameterLaravel 4.2 子域路由参数
【发布时间】:2016-06-26 15:38:16
【问题描述】:

我已经使用xampp 在我的本地主机上设置了一些子域。 这是我的子域路由:

    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”都不会传递给方法,而是显示子域的名称。

谁能指出我正确的方向。

编辑 当我将 $subdomain 添加到该方法时,我得到了正确的 $id。 现在的新问题是如何在不将 subdomain-param 注入每个方法的情况下做到这一点。

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

【问题讨论】:

  • 你试过{{ URL::route('sub.gallery', ['subdomain'=>$subdomain,'id'=>2]) }}吗?
  • 我做了,但没有改变任何事情。

标签: laravel parameters routes subdomain


【解决方案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} 这样的变量,无论如何你都必须抓住它。

【讨论】:

  • 对不起,我不太明白,你能给我举个例子,如何使用 account 和 id 参数编写命名路由。
  • 你的路由没问题,应该可以的。您的操作应该同时捕获$account$id(变量来自我的示例)。
  • 所以我必须将 $subdomain 放到每个控制器操作中?即:公共功能画廊($subdomain,$id){...}?我不敢相信没有比这更聪明的方法了。
  • 是的,你必须这样做,因为路由传输两个agruments。
猜你喜欢
  • 2014-12-09
  • 2015-11-17
  • 1970-01-01
  • 2018-03-01
  • 2020-01-04
  • 2016-09-18
  • 2016-09-25
  • 2015-09-10
  • 1970-01-01
相关资源
最近更新 更多