اذهب إلى المحتوى

السؤال

نشر

مرحبا ، لدي هذا الكود في أحد المتحكمات في مشروع Laravel وأحصل على خطأ 

public function store(Request $request)
    {
        $values = []; 

        $request->validate([
            'order_number' => 'required',
            'client_id' => 'required|exists:clients,id',
            'description' => 'required',
            'products' => 'required|exists:products,id',
            'amount' => 'required',
        ]);
        $order = Order::create($request->all());
        foreach ($request->products as $product) {
                $values[] = [
                    'order_id' => $order->id,
                    'product_id' => $product,
                    'amount' => $request->amount,
                ];
                $amount = Product::find($product);
               $total_value = $request->amount + $amount->amount; //المشكلة تحدث هنا
               $amount->update(['amount' => $total_value]);
            }
            $order->products()->attach($values);
            return redirect('/')->with('msg', 'Order Saved successfully!');
        }

تأتي جميع القيم كقيمة واحدة باستثناء amount الذي يأتي كمصفوفة وليس كقيمة واحدة. هذا هو الخطأ الذي أحصل عليه:

Unsupported operand types: array + string

هذا هو نموذج Product

  protected $fillable = [
        'name',
        'price',
        'amount',
    ];

    public function orders()
    {
        return $this->belongsToMany(Order::class);
    }

وهذا هو dd ($ request-> amount) ؛
8goXv.png.255e1433ae655f7eacb20709f5710e31.png

Recommended Posts

  • 0
نشر

المشكلة تحدث بسبب أنك تحاول جمع متغير من نوع مصفوفة Array مع سلسلة String. وهذا غير ممكن.

لاحظ أنك المتغير $request->amount المرسل بواسطة الركويست هو من نوع مصوفة Array.

اذا كنت تحاول جمع كل عناصر المصفوفة فيمكن استخدام الفانكشن array_sum.

فيكون حل المشكلة هكذا:

$total_value = array_sum($request->amount) + $amount->amount;

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...