Laravel 请求嵌套的父/子表单
P粉446800329
2023-08-08 18:04:08
<p>我正在使用laravel创建一个api。我已经创建了ProductRequest和ProductPriceRequest类来进行请求验证,它们按预期工作。</p><p>一个Product可以有多个ProductPrice。</p><p>现在,为了创建ProductPrice,我需要先创建一个Product,然后再创建与该Product相关联的ProductPrice</p><p><br /></p>
<pre class="brush:php;toolbar:false;">//Create product
POST->http://127.0.0.1:8000/api/v1/products
{
"name":"product1"
}
//Create productprice associated with product
Post->http://127.0.0.1:8000/api/v1/products/69081258758830188/productprices
{
"name":"productprice1"
}</pre>
<p>但是我想在创建产品时启用ProductPrice的创建</p>
<pre class="brush:php;toolbar:false;">//Create product+productprice
POST->http://127.0.0.1:8000/api/v1/products
{
"name": "prod2",
"productPrices": [
{
"name": "pp1"
},
{
"name": "pp2"
}
]
}</pre>
<p>由于我已经拥有(并需要)一个ProductPriceRequest,如果请求中有一个ProductPrice,我如何在ProductRequest中使用ProductPriceRequest类来验证ProductPrice。</p><p>我是laravel(我使用的是版本10)和php的新手,没有找到任何关于这种情况的示例</p><p><br /></p>
个人而言,在另一个ProductPriceRequest类中,我不会尝试重用相同的规则;而对于ProductRequest,我只会做一些类似的操作
或者无论你的规则是什么。
从技术上讲,如果你确实想要使用相同的规则,你可以将这些重复的规则放在ProductPrice模型中,然后在两个FormRequest文件中使用它们,但我不确定是否还会有其他冲突,因为在这里,数据是以数组的形式存在,而在另一种情况下(你没有展示在其他地方你使用和需要ProductPriceRequest),可能会传递另一种用于验证的结构