【问题标题】:Call to undefined method App\Product::getProductStock()调用未定义的方法 App\Product::getProductStock()
【发布时间】:2019-10-29 06:44:38
【问题描述】:

BadMethodCallException 调用未定义的方法 App\Product::getProductStock() 访问控制器中的模型函数时发生此错误

我的Controller


            $user_id = Auth::user()->id;
            $user_email = Auth::user()->email;


            // To prevent out of stock material from ordering
            $userCart=DB::table('cart')->where('user_email',$user_email)->get();
            // echo "<pre>"; print_r($userCart); die;
            foreach ($userCart as $cart) {

                $product_stock= Product:: getProductStock($cart->product_id,$cart->size);
                echo $product_stock;

                if ($product_stock==0) {
                    return redirect('/cart')->with('flash_message_error','Product is Stock sold out. Buy another product');
                }

                if ($Cart->quantity>$product_stock) {
                    return redirect('/cart')->with('flash_message_error','Reduced product stock & Try Again');
                }

            }

Model

    public static function getProductStock($product_id,$product_size)
    {
        $getProductStock=ProductsAttribute::select('stock')->where(['product_id'=>$product_id,'size'=>$product_size])->first();
        return $getProductStock->stock;
    }

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    我认为你的产品检索方法不是最好的。

    要获得产品,您应该使用这种方法:

    $product = Product::find($cart->product_id);
    

    要检索股票应该是:

    $product_stock = $product->getProductStock($product->id, $cart->size);
    

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 2018-04-12
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2021-10-22
      • 2021-04-15
      相关资源
      最近更新 更多