簡體   English   中英

Laravel 8: count(): 參數必須是一個數組或者一個實現了 Countable 的 object

[英]Laravel 8: count(): Parameter must be an array or an object that implements Countable

我正在使用 Laravel 8 制作支付系統,因此我將其編碼為PaymentController

class PaymentController extends Controller
{
    public function payment()
    {
        $cart = Cart::instance('cart-roocket');
        $cartItems = $cart->all();
        if($cartItems->count()) {
            $price = $cartItems->sum(function($cart) {
                return $cart['product']->price * $cart['quantity'];
            });

            $orderItems = $cartItems->mapWithKeys(function($cart) {
                return [$cart['product']->id => [ 'quantity' => $cart['quantity']] ];
            });

            $order = auth()->user()->orders()->create([
                'status' => 'unpaid',
                'price' => $price
            ]);

            $order->products()->attach($orderItems);

            $token = config('services.payping.token');
            $res_number = Str::random();
            $args = [
                "amount" => 1000 ,
                "payerName" => auth()->user()->name,
                "returnUrl" => route('payment.callback'),
                "clientRefId" => $res_number
            ];

            $payment = new \PayPing\Payment($token);

            try {
                $payment->pay($args);
            } catch (\Exception $e) {
                throw $e;
            }
            //echo $payment->getPayUrl();
            $order->payments()->create([
                'resnumber' => $res_number,
                'price' => $price
            ]);

            $cart->flush();

            return redirect($payment->getPayUrl());
        }

        // alert()->error();
        return back();
    }

    public function callback()
    {

    }
}

但是每當我嘗試打開路線payment時,我都會看到此錯誤:

count():參數必須是一個數組或者一個實現了Countable的object

那么這里出了什么問題? 我該如何解決這個錯誤?

我真的很感激你們的任何想法或建議......

提前致謝。

if (!$cartItems->isEmpty())替換你的if($cartItems->count()) ))

當你運行all()方法時,它返回一個集合實例,而不是一個數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM