Laravel Relationships

后端 未结 2 798
别跟我提以往
别跟我提以往 2020-12-16 16:19

I\'ve been looking over relationships in Laravel 4 in the documentation and I\'m trying to work out the following.

I have a table in my database called \'events\'. T

相关标签:
2条回答
  • 2020-12-16 16:34

    You need to specify in both models a relationship. belongsTo() in one, hasOne() in the other, since you are using one-to-one relationship

    class Course extends Eloquent{
    
        protected $table = 'courses';
    
    
        public function event()
        {
            return $this->belongsTo('Event');
        }
    }
    
    
    class Event extends Eloquent {
    
        protected $table = 'events';
    
        public function course()
        {
            return $this->hasOne('Course');
        }
    
    }
    

    Then calling it in the route or the controller would be as following:

    Course of specific event (in this case with id of 1)

    $course = Event::find(1)->course;
    

    Event of specific course (in this case with id of 1)

    $event = Course::find(1)->event;
    

    Please refer to the Laravel 4 documentation, section Eloquent ORM: http://laravel.com/docs/eloquent#one-to-one

    0 讨论(0)
  • 2020-12-16 16:49

    This is basically the same answer as @Marko Aleksić, but with the hasOne() and belongsTo() relationships the right way around.

    class Course extends Eloquent{
    
        protected $table = 'courses';
    
    
        public function event()
        {
            return $this->hasOne('Event'); // links this->id to events.course_id
        }
    }
    
    
    class Event extends Eloquent {
    
        protected $table = 'events';
    
        public function course()
        {
            return $this->belongsTo('Course'); // links this->course_id to courses.id
        }
    
    }
    
    0 讨论(0)
提交回复
热议问题