如何检查第二种方法是否失败?

我有这两种方法来index检查请求是否获得批准,对产品进行循环,并检查是否有足够的数量(如果不只是返回消息)!


代码


public function index(Order $order,Request $request)

{

    if($request->status == 'approved'){

        $this->check($order);

    }


    $this->updateOrder($order,$request);


    return redirect()->back()

            ->with('success',trans('site.message_updated'));

}



protected function check($order){

    foreach($order->products as $product){

        if ($product->doesNotHaveEnoughQuantity($product->pivot->quantity)) {

            return redirect()->back()

                    ->with('error',trans('site.larger_than_qty_in_store'));

        }

        $this->updateProductQty($product);

    }

}

当我确实设置状态时,approved即使数量不足,状态也会更新


简而言之,重定向 back()check不会杀死页面并停止!


当我调用另一个方法时如何重定向回来?


墨色风雨
浏览 73回答 1
1回答

白衣非少年

尝试这个:private $productWithError;public function index(Order $order,Request $request){    if($request->status == 'approved'){        if( ! $this->check($order) ) {            return redirect()->back()                    ->with('error', $this->productWithError.' '.trans('site.larger_than_qty_in_store'));        }    }    $this->updateOrder($order,$request);    return redirect()->back()            ->with('success',trans('site.message_updated'));}protected function check($order){    foreach($order->products as $product){        if ($product->doesNotHaveEnoughQuantity($product->pivot->quantity)) {            $this->productWithError = $product->name;            return false;        }        $this->updateProductQty($product);    }    return true;}
打开App,查看更多内容
随时随地看视频慕课网APP