【问题标题】:Laravel routing to controllerLaravel 路由到控制器
【发布时间】:2023-03-27 11:15:01
【问题描述】:

我正在尝试将多个 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){}

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

这可能吗?

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

【问题讨论】:

    标签: routing controller laravel laravel-3


    【解决方案1】:

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

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

    【讨论】:

    • 干杯我知道它会像那样简单,但文档中没有任何内容。这正是需要的欢呼。
    猜你喜欢
    • 2014-09-11
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2018-09-06
    • 2023-03-27
    • 2014-01-24
    相关资源
    最近更新 更多