محمد لارافيل نشر 3 فبراير 2023 أرسل تقرير نشر 3 فبراير 2023 مرحبا ، لدي هذا الكود في أحد المتحكمات في مشروع 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) ؛ 2 اقتباس
0 محمد الخطيب9 نشر 3 فبراير 2023 أرسل تقرير نشر 3 فبراير 2023 المشكلة تحدث بسبب أنك تحاول جمع متغير من نوع مصفوفة Array مع سلسلة String. وهذا غير ممكن. لاحظ أنك المتغير $request->amount المرسل بواسطة الركويست هو من نوع مصوفة Array. اذا كنت تحاول جمع كل عناصر المصفوفة فيمكن استخدام الفانكشن array_sum. فيكون حل المشكلة هكذا: $total_value = array_sum($request->amount) + $amount->amount; 1 اقتباس
السؤال
محمد لارافيل
مرحبا ، لدي هذا الكود في أحد المتحكمات في مشروع 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) ؛
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.