0

我正在尝试使用这些 url 的一部分作为控制器内方法的参数将多个 url 路由到同一个控制器函数。这是基于 Laravel 框架的路由功能,我不是在寻求关于 htaccess/pretty url 等的一般帮助。特别是我想知道如何在 Laravel routes.php 文件中实现这一点。

我尝试路由的 URL 是:

domain.com/articles

domain.com/downloads

domain.com/videos

domain.com/digests

现在我知道我可以在我的 routes.php 中做这样的事情:

Route::get(array('digests','articles','videos','downloads'), 'content@list_content');

这将路由到我的内容控制器中的这个函数:

public function action_list_content(){}

但是我实际上希望函数看起来像这样:

public function action_list_content($type){}

并且 URL 的第一部分(即摘要、文章、视频或下载)中的任何内容都应作为 $type 参数发送到 action_list_content 方法。

这可能吗?

我应该注意,我宁愿不使用 (:any) 因为它真的很贪婪并接受“domain.com/anyrandomtext”

4

1 回答 1

3

Laravel 将通配符转换为正则表达式,然后再进行进一步处理。因此,实际上,您可以通过提供正则表达式直接跳入其中:

Route::get('(articles|downloads|videos|digests)', 'content@list_content');
于 2013-02-16T19:30:04.587 回答