在 laravel 网站中制作子类别
Posted
技术标签:
【中文标题】在 laravel 网站中制作子类别【英文标题】:Making sub category in laravel website 【发布时间】:2016-09-19 19:51:24 【问题描述】:所以我想扩展我的站点以拥有类似的区域站点,因此当用户打开我的站点时,系统会要求选择他/她感兴趣的区域,然后说他对伦敦感兴趣,然后该站点将生成一个已经与该地区相关的所有内容的网页...
我尝试以与创建管理员页面相同的方式通过在此路线中对它们进行分组
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 赶上亚洲,然后在我的产品功能中我将只处理它..?
【问题讨论】:
也许可以这样制作路线:Route::get('product/country/id',array( 'as' => 'product','uses' => 'PublicController@product'));
【参考方案1】:
当然,您不需要为每个区域创建控制器。您想使用带变量的简单路由:
Route::get('region/region', 'RegionController@show');
所有地区只有一个控制器:
public function show ($region)
// Logic here
return view('region.show', compact(['region']));
因此,当用户加载http://example.com/region/London
时,show
操作将在$region
变量中包含London
。
【讨论】:
谢谢,但请查看我更新的帖子...以获得更好的理解【参考方案2】:所以在搜索了几天并四处询问之后,我终于找到了回答我自己问题的最佳解决方案,我愿意在这里分享它,所以有一天也许会有其他人想做想做的事......
所以首先在路线中创建这样的
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
就这样......我可以从前缀中获取那些区域值并使用它。就我而言,我用它来显示具有不同内容的某些页面。
【讨论】:
以上是关于在 laravel 网站中制作子类别的主要内容,如果未能解决你的问题,请参考以下文章