هل تريد تحديث العديد من البيانات المتعددة باستخدام الجداول التي تنتمي إليها؟

StackOverflow https://stackoverflow.com//questions/21027204

سؤال

اسف للغتى الانجليزيه

أريد جدولين

الفواتير

  • بطاقة تعريف
  • معرف المستخدم
  • اسم
  • أنشئت في
  • update_at

عناصر الفواتير

  • بطاقة تعريف
  • هوية صوتية
  • عنوان
  • createad_at
  • update_at

عارضات ازياء

class Invoices extends eloquent{
   public function invoicesitems(){
       return $this->hasMany('Invoicesitem');
   }
}

class Invoicesitems extends eloquent{
   public function invoices(){
       return $this->belongsTo('Invoice');
   }
}

الآن، لتحديث بنود فواتيري؟مثال: تحتوي فواتيري على 5 عناصر، وأحتاج إلى التحديث إلى 10 عناصر

أولا قم بحذف كافة بنود فواتيري وأدخل جديد ؟؟؟

$invoices = Invoices::findOrFail($id);
$dataupdate = array(
  'user_id' => Input::get('user'),
  'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();

// طيب قم بتحديث الفواتير، والآن كيف يتم تحديث العناصر؟يشكركم.

هل كانت مفيدة؟

المحلول

إذا كان منطق عملك يسمح بذلك - يمكنك فقط استبدال عناصر الفاتورة.

$invoice = Invoices::findOrFail($id);
$dataupdate = array(
    'user_id' => Input::get('user'),
    'name' => Input::get('name'),
 );
 $invoice->update($dataupdate);

 // replace invoice items
 $invoice->invoicesitems()->delete();
 $invoice->invoicesitems()->create($invoiceItems);

ملحوظة!هذا هو الحل المباشر تماما.يمكنك التحسن باستخدام insert() طريقة بدلا من create() لإدراج الدفعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top