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 - 如何不在控制器中传递未使用的参数的主要内容,如果未能解决你的问题,请参考以下文章