laravel 5在保存到数据库之前查询请求循环

时间:2018-01-16 06:18:37

标签: php mysql laravel

请问我确实有一个问题,我想要一些多输入字段,这将保存到数据库但在保存之前我想去其他表检查数量和一些其他功能,以便如果其中一个请求字段失败的循环不符合要求它会拉回错误响应,例如项目5的数量不足以发送

这是当前发送到db

的代码
   public function store(Request $request, $id){
    $data = $request->except('_token');

    $productName = count($data['productName']);
    for($i=0; $i < $productName; $i++){

        $stt = new StockTransferTransaction;

        $stt->stock_id = $data['productName'][$i];
        $stt->rate = $data['rate'][$i];


        $stt->quantity = $data['quantity'][$i];
        $stt->valuation = $data['totalValue'][$i];
        $stt->stock_transfer_id = $id;


        // this is where i would love to perform the quantity checks before saving 

        $stock = Stock::where('id', $productName)->get();

        dd($stock);

        $stt->save();

    }



}

1 个答案:

答案 0 :(得分:0)

首先,您使用计数$productName = count($data['productName']);
作为 id $stock = Stock::where('id', $productName)->get();

您可以使用以下支票:

for($i=0; $i < $productName; $i++){

  $stock = Stock::find(/*StockID*/);
  //dd($stock);

  if ($stock) {
    //Error message
  }
  else {
    $stt = new StockTransferTransaction;

    $stt->stock_id = $data['productName'][$i];
    $stt->rate = $data['rate'][$i];


    $stt->quantity = $data['quantity'][$i];
    $stt->valuation = $data['totalValue'][$i];
    $stt->stock_transfer_id = $id;

    $stt->save();
  }
}