Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔动态路由器_Php_Laravel_Laravel 5_Laravel 5.4 - Fatal编程技术网

Php 拉威尔动态路由器

Php 拉威尔动态路由器,php,laravel,laravel-5,laravel-5.4,Php,Laravel,Laravel 5,Laravel 5.4,我正在建立一个网站的网页都是动态的,布局是相同的,但与不同的内容块。我想让它搜索引擎优化友好的地方,每个网页的url组成的任何类别,然后一个网页名称。i、 e.home.com/cat1/sub-ca2/sub-cat3/page-name 路由器必须从url获取slug,并返回一个包含适当产品数据的视图来填充该视图 我在互联网上徒劳地搜索,试图找到有关如何制作路由器的说明。有谁能解释一下如何做到这一点 提前感谢堆,感谢令人敬畏的Laravel团队,Laravel是最好的 如果所有您的URL都遵

我正在建立一个网站的网页都是动态的,布局是相同的,但与不同的内容块。我想让它搜索引擎优化友好的地方,每个网页的url组成的任何类别,然后一个网页名称。i、 e.home.com/cat1/sub-ca2/sub-cat3/page-name

路由器必须从url获取slug,并返回一个包含适当产品数据的视图来填充该视图

我在互联网上徒劳地搜索,试图找到有关如何制作路由器的说明。有谁能解释一下如何做到这一点


提前感谢堆,感谢令人敬畏的Laravel团队,Laravel是最好的

如果所有您的URL都遵循相同的结构home.com/cat1/sub-ca2/sub-cat3/page name,这在Laravel中非常简单:

Route::get('{cat1}/{cat2}/{cat3}/{name}', function($cat1, $cat2, $cat3, $name) {
      return view($cat1 . '.' . $cat2 . '.' . $cat3 . '.' . $name);
});
如果不是所有页面都遵循URL中有4个参数的结构,那么就没有一个很好的解决方案。为了路由,您需要某种URL结构的可预测性,以便知道在什么地方有什么参数

您还可以将其卸载到控制器方法中,如Laravel路由文档中所述

路由器

Route::get(‘{cat1}/{cat2}/{cat3?}/{cat4?}’, ‘SomeController@index’);
public function index(Request $request, $cat1, $cat2, $cat3, $cat4) {
    // logic here
}
控制器

Route::get(‘{cat1}/{cat2}/{cat3?}/{cat4?}’, ‘SomeController@index’);
public function index(Request $request, $cat1, $cat2, $cat3, $cat4) {
    // logic here
}

感谢Rob,每个页面的分类数量会有所不同,一个可以是site.com/digital-signage/outdoor/outdoor-digital-signage-page,也可以是site.com/digital-signage/digital-signage-page。是否有一个动态的段塞数?该文档中的方法适用于有限数量的slug。您可以选择其中一些slug,但您仍然必须知道位置在逻辑上意味着什么。你最好把它传给一个控制器,然后实现你需要的逻辑。谢谢rob,我怎么能把整个过程传给控制器呢?我大概可以从那里得出逻辑?你能将“/*通配符*/转发给控制器吗?我编辑了我的答案,以显示控制器执行此操作的方式。听起来至少需要2个参数,所以我在回答中选择了cat3和cat4