Laravel 网络路由变量未按预期返回

Posted

技术标签:

【中文标题】Laravel 网络路由变量未按预期返回【英文标题】:Laravel web route variable is not returning as supposed 【发布时间】:2018-05-23 12:56:21 【问题描述】:

我有以下路线:

    Route::get('/web/cat_id?/post_type','WebPostsController@index')
->where('post_type', '(pictures|videos|links|companies)')
->name('post_index');

控制器文件:

 public function index($post_type,$post_id = null,$cat_id = null)
    

        dd($post_type);

当访问 URL /public/web/15/videos 它返回“15”,它应该返回 post_type 值(视频),同时返回 cat_id? 值。

【问题讨论】:

索引方法中的post_id是什么? 路由前有组吗? 【参考方案1】:

传递给动作的变量必须遵循路由中的定义。 也就是说,在您的情况下,您首先期望 cat_id,然后是 post_type,这意味着您必须将方法定义为:

public function index($cat_id, $post_type)  

此外,我希望您仍然会遇到一些问题,因为您不能有一个可选参数,然后是一个强制参数。因此,要么将 $cat_id 参数作为可选参数移动到路由的末尾,然后在 (/public/web/videos/15) 之前使用 $post_type 或强制两者。

【讨论】:

以上是关于Laravel 网络路由变量未按预期返回的主要内容,如果未能解决你的问题,请参考以下文章

嵌套路由(React-Router-Dom 6.0.2)未按预期工作

基于 AWS 应用程序负载均衡器 (ALB) 路径的路由未按预期运行

如何在 laravel 5.5 中获取网络路由列表?

React 路由器:userHistory 推送功能未按预期工作

Laravel 路由返回不正确的模型以查看

Laravel 8 重定向网络路由