Как проверить несколько запрошенных массивов и сравнить их в laravel - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу проверить, больше ли сумма количества из двух таблиц, чем запрашиваемые товары / товары id

Я попробовал приведенный ниже код и получил эту ошибку,

Попытка получить свойство'pping_balance 'не-объекта

Код, который я пробовал

$data=$request->all();
if(count($request->pid) > 0) {
    foreach($request->pid as $key=>$v){
        $data2=([
                'order_no'=>$fk,
                'pid'=>$request->pid [$key],
                'sid'=>$request->sid,
                'qty'=>$request->qty [$key],
        ]);

        $pid= $request->pid [$key];
        $qty=$request->qty [$key];

        //check if quatity requested is less that 
        $data2=DB::select(DB::raw("SELECT
               (
                    (select ifnull(sum(stocks.qty),0) 
                        from stocks 
                        where stocks.pid =' $pid'
                    )
                    -
                    (select ifnull(sum(loadings.qty),0) 
                        from loadings 
                        where loadings.pid = '$pid'
                    )
                ) as closing_balance
               "));

        // dd($data);

        if((int)$data2->closing_balance < (int)$qty){

            return redirect()->back()
               ->withErrors(['The stock quantity is less, Please check your stock quantity! ']);
        }else{
            Loading::create($data2);
        }
    }
    return redirect()->back()->with('success', 'Successfully Stored');
}

Если я запустил dd ($ data), результат будет

  array:5 [▼
"_token" => "OwLoAtGPUFJUokSvP0MDanDk4MkUBlIVCL8CtFqC"
"order_no" => "CRS0904200001"
 "sid" => "1"
"pid" => array:1 [▼
  0 => "4"
]
"qty" => array:1 [▼
 0 => "49"
 ]

]

Если я запустил dd ($ data2), результат будет

  array:1 [▼
0 => {#342 ▼
 +"closing_balance": 40.0
}
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...