在方法中使用多个值检查多个URL参数的最佳解决方案是什么?

时间:2017-08-28 12:41:51

标签: php laravel parameter-passing

在我的Laravel应用程序中,我有一个简单的API端点。像这样:

Route::get('/products/get&organization_id={organization_id}&warehouse_id={warehouse_id?}&stock={stock}', 'ProductController@getProducts');

在我的控制器中,我有这种方法:

public function getProducts($organizationId = NULL, $warehouseId = 0, $stock)

在这里,我将为参数设置一些if和一些isset,但还有一个switch。 (基本验证)

此处的所有内容都与存储库和合同相关联。

我的问题是我应该在哪里进行参数验证以及如何进行验证?哪个是最好的解决方案?

1 个答案:

答案 0 :(得分:1)

验证是控制器上的扩展方法。

getProducts(Request $request)方法中,您可以执行以下操作:

$this->validate($request, [
    'organizationId' => 'required|unique',
    'warehouseId' => 'required',
    'stock' => 'required',
]);

注意,在getProducts方法中,我们传入了Request $request而不是单个参数。请求$ request从查询字符串中获取所有$ _POST和$ _GET变量和属性,可以通过请求获得。

祝你好运