所以我想扩展我的网站以拥有类似的地区网站,所以当用户打开我的网站时,它会被要求选择他/她感兴趣的区域,并让我说他在伦敦有趣,然后该网站将生成一个已经与该地区相关的所有内容的网页...
我尝试按照相同的方式创建管理员页面,方法是将它们分组到此路径中
Route::group(array('prefix'=>'admins','before' => 'auth'),function(){
Route::resource('partner','AdminPartnerController',array('except' => array('show')));
Route::get('partner/index_kategori/{id}',array(
'as' => 'admins.partner.index_kategori',
'uses' => 'AdminPartnerController@index_kategori'
});
但这意味着我需要为我要创建的每个区域创建不同的控制器功能,因此效率不高。
我想到的就像制作
一样www.websiteadress.com/region
那么我怎么能抓住那个“/ region”并将该值添加到控制器中的每个函数中?如何建立那种路线?
更新
让它更容易理解,什么成为我的问题就像我有这个正常的路线:
Route::get('product/{id}',array( 'as' => 'product','uses' => 'PublicController@product'));
当我输入时,这条路线的作用非常直接
www.websiteadress.com/product/12
它将打开12号产品页面,所以我的问题是如果我这样添加
www.websiteadress.com/Asia/product/12
我如何让我的PublicController捕捉亚洲,后来我的产品功能我将只处理...?
答案 0 :(得分:0)
当然,您不需要为每个地区创建控制器。您希望使用带有变量的简单路径:
Route::get('region/{region}', 'RegionController@show');
所有地区只有一个控制器:
public function show ($region)
{
// Logic here
return view('region.show', compact(['region']));
}
因此,当用户加载http://example.com/region/London
时,show
操作会在London
变量中生成$region
。
答案 1 :(得分:0)
所以首先在路线上创建这样的
Route::group(['prefix' => '{region}'], function(){
Route::get('member',array('as' => 'member','uses' => 'PublicController@member'));
});
这条路线的作用就是将它分组为前缀,其值为区域变量,然后我将获取路径设置为控制器用于显示页面的位置,并将区域值用于使用
然后在我的PublicController
中public function sitemap($region){
if($region =='london'){
//do something
}else{
//do something
}
}
所以它是..我可以从前缀获取那些区域值并使用它。在我的情况下,我使用它来显示具有不同内容的特定页面。