我已经使用 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。 现在的新问题是如何在不将子域参数注入(inject)到每个方法中的情况下做到这一点。
public function gallery($subdomain, $id) {
die($id);//output is now "2"
}
最佳答案
问你的第一个问题:你应该在你的操作中使用变量,例如 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}
这样的变量,则无论如何都必须捕获它。
关于Laravel 4.2 子域路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35939429/