繁体   English   中英

在laravel网站上制作子类别

[英]Making sub category in laravel website

所以我想扩展我的网站以拥有像地区网站,所以当用户打开我的网站时,它会被要求选择他/她感兴趣的区域,并让我说他在伦敦有趣,然后该网站将生成一个网页已经所有与该地区相关的内容......

我尝试以同样的方式创建管理员页面,方法是将它们分组在此路径中

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('region/{region}', 'RegionController@show');

所有地区只有一个控制器:

public function show ($region)
{
    // Logic here
    return view('region.show', compact(['region']));
}

因此,当用户加载http://example.com/region/Londonshow action将在$region变量中包含London

在搜索了几天并四处询问之后,我终于得到了最好的解决方案来回答我自己的问题,我愿意分享到这里,所以总有一天也许有其他人想做想做的事...

所以首先在路线上创建这样的

Route::group(['prefix' => '{region}'], function(){
    Route::get('member',array('as' => 'member','uses' => 'PublicController@member'));
});

这个路由做的只是将它组合成前缀,其值是在区域变量中,然后我设置get路由到控制器将用于显示页面的位置,并将区域值用于使用

然后在我的PublicController中

public function sitemap($region){
  if($region =='london'){
     //do something
  }else{
    //do something
  }
}

它就是..我可以从前缀中获取那些区域值并使用它。 在我的情况下,我用它来显示具有不同内容的某些页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM