获取在其基本路径中也有参数的资源控制器的参数

Posted

技术标签:

【中文标题】获取在其基本路径中也有参数的资源控制器的参数【英文标题】:Get parameters for resource controller that has parameter in its base path too 【发布时间】:2014-04-30 07:05:07 【问题描述】:

我有一个用于具有基本路径的资源控制器的路由。在这个基本路径中,我需要另一个参数:countryId

Route::resource('country/countryId/region', 'CountryRegionController');

我知道在常规资源控制器中我可以获取资源的 id 作为函数参数,如下所示:

public function edit($countryRegionId)



但这有点搞砸了路由中的额外参数。如何以常规方式获取所有参数?

【问题讨论】:

【参考方案1】:

在这种情况下,您可以展开参数列表。实际上你应该扩展,因为如果你只使用一个参数,它将是基本路由中参数的值,而不是资源的 id。所以这是正确的方法。

public function edit($countryId, $countryRegionId)



参数名称可以是任何东西,它不必与路由中的参数名称匹配,但顺序很重要。

您也可以使用Request::segment(),但之前的解决方案要好得多。

$countryId = Request::segment(2);
$countryRegionId = Request::segment(4);

【讨论】:

以上是关于获取在其基本路径中也有参数的资源控制器的参数的主要内容,如果未能解决你的问题,请参考以下文章

DoTween插件的基本操作总结

如何使用模型类在 laravel 8 资源控制器中编辑、销毁和获取单个值?

参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串

在RESTFUL风格中怎样定义需要多个参数才能确定的资源路径

vue中如何查看api中完整的url

如何将AngularJS $资源中的params序列化为rails 3.2兼容的参数