laravel路线中的可变参数计数

时间:2013-11-16 23:24:05

标签: php routing laravel

我正在尝试使用所需参数创建一个路径,然后创建n个参数。 n量是未知的,只是它大于零。

<?php
Route::get('{tree_slug}/{n-amount}', 'DecisionTreeController@branch');
?>

这需要匹配: some-slug / a / b / c和some-slug / d / e或some-slug / a / b / c / d / e

然后最好将数组作为控制器函数中的第二个参数,如下所示:

<?php // assume controller context here
public function branch($tree_slug, $choices = array())

我知道如何在Symfony中做这些事情,但在Laravel有可能吗?怎么样?

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方法:

// routes.php

Route::get('{tree_slug}/{choices?}', 'DecisionTreeController@branch')->where('choices', '(.*)');

你的控制器:

<?php

class DecisionTreeController extends BaseController {

    public function branch($tree_slug, $choices)
    {
        $choices = explode('/', $choices);
        print_r($choices);
    }

}

但是,你必须要小心。请确保将此路由放在routes.php文件的末尾,因为Laravel将按照您定义的顺序检查规则,并且此模式将匹配任何给定的URL。因此,为了允许执行其他路线,它们应该之前