Laravel - 如何不在控制器中传递未使用的参数

Posted

技术标签:

【中文标题】Laravel - 如何不在控制器中传递未使用的参数【英文标题】:Laravel - How to not pass unused parameter in controller 【发布时间】:2021-11-21 09:20:24 【问题描述】:

例如,我有一条路线-

Route::get('/api/user/companies/company', [CompanyController::class, 'getCompanies'])

以及这个控制器中的一个函数

public function getCompanies(User $user, Company $company) 
    $companies = $company->all();
    return response()->json(['companies' => $companies]);

我没有在函数中使用 $user 实例,并且我不想在其中传递用户 $user 参数,但我希望路由具有用户 ID 作为参数,以便在前端清晰。 我找到了一个使用中间件与 forgetParameter() 方法的解决方案,但我不想添加新的中间件或只为这条​​路线声明它。

我可以将未使用的参数留在我的函数中,一切都会正常工作,但我很好奇这种情况是否有一些优雅的解决方案。

【问题讨论】:

【参考方案1】:

我认为您可以输入 _ 而不是传递参数,但我可能错了。

【讨论】:

【参考方案2】:
public function getCompanies(Company $company, ?User $user = null) 

    return response()->json(['companies' => $company->all()]);

将 $user 传递到最后一个位置并给它一个默认值

【讨论】:

以上是关于Laravel - 如何不在控制器中传递未使用的参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在控制器传递变量(laravel)中使用刀片进行 foreach

如何在视图控制器之间传递数据而不在 ios 中使用 segue?

Laravel - 如何将参数从控制器传递到路由并在另一个控制器中使用它?

Laravel:如何在控制器中传递参数

laravel刀片视图中的变量未定义错误

Laravel - 输入未通过单元测试