我正在尝试使用所需参数创建一个路径,然后创建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有可能吗?怎么样?
答案 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。因此,为了允许执行其他路线,它们应该之前。