【发布时间】:2019-04-30 07:05:23
【问题描述】:
几年后我回到 Laravel 并试图了解在 Laravel 中编码的现有 REST API 是如何工作的。我无法理解具有多个表单请求参数的特定控制器方法是如何工作的(或者如果确实如此)。
REST API 是在 Laravel 5.1 中编码的。我查看了官方文档(5.1 和最新版本)并尝试在网络和 SO 中搜索相关主题(例如,“laravel 控制器多个表单请求”、“laravel 控制器多个类型提示请求”等) ,但我似乎找不到明确的解释。可能是我看错了角度。
public function store(ProductRequest $productRequest, PromoRequest $promoRequest)
{
// Validate product
$product = new Product($productRequest->all());
// Validate promo
if ($promoRequest->get('promo')) {
$promo = new Promo($promoRequest->get('promo'));
}
...
}
在大多数文档中,控制器只接受一个 Request 对象。我确实看到了一些具有多个表单请求参数的示例,但通常建议它们只使用一个表单请求。但抛开最佳实践不谈,这段代码是如何工作的?当这个方法被调用时,Laravel 是如何知道如何将 Request 拆分为两个独立的 Form Request 类的?
请随时告诉我是否以及如何更清楚地解释我的问题。
【问题讨论】:
-
您将实例、类定义(延迟加载)等值填充到容器中。然后给出需要的东西,技术上使用反射来读取上述情况的控制器类方法参数。
标签: laravel