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

السؤال

نشر

لدي نموذجان  "Tickets" و "Messages" ، يمكن للمستخدم أن يمتلك العديد من التذاكر وكل تذكرة تمتلك العديد من الرسائل

class Message extends Model {
    public function Ticket() {
        return $this->belongsTo(Ticket::class, 'ticket_id', 'ticket_id');
    }

    public function user() {
        return $this->belongsTo(User::class, 'user_id', 'user_id');
    } 
}


class Ticket extends Model {
    public function messages() {
        return $this->hasMany(Message::class, 'ticket_id', 'ticket_id');
    }

    public function user() {
        return $this->belongsTo(User::class, 'user_id', 'user_id');
    }
}

عند محاولة إنشاء رسالة مرفقة بالمستخدم الحالي عبر الكود أدناه:

$Ticket->messages()->create([
    'message' => $post['message']
]);

أحصل على الخطأ التالي

Cannot insert the value NULL into column 'user_id', table 'messages'

نظرًا لأن Ticket مرتبط بالفعل بمستخدم ، فقد افترضت أنه سيتم ربطه بالرسالة أيضا. يمكنني تحديده يدويا ولكني أريد أن يتم بناء كل شيء باستخدام علاقات Laravel بالطريقة الصحيحة

Recommended Posts

  • 0
نشر

اهلا محمد ,

لا يمكنك جعل حقل ال user_id = null في برنامجك لانه في العاده يكون ال user_id هو المفتاح الاصلي (Primary Key) لجدول ال users
ومن خصائص الpk احتوائه علي خاصيه ال not null (اي انه يجب ان يكون بقيمه معينه ولا يمكن ان يكون null)

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...