Laravel Relationships

Gareth Daine picture Gareth Daine · Apr 25, 2013 · Viewed 40.3k times · Source

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'. This table has various fields that mainly contain ID's that relate to other tables. For example, I have a 'courses' table. The events table contains a field called 'course_id' which relates to the ID of the 'id' field in the courses table.

So basically, I'm after some advice on how you go about relating the two (belongsTo()?) and then passing the connected data to the view.

Here is where I am at so far http://paste.laravel.com/pf3.

I hope you guys are able to give me some advice on how best to approach this problem. Thanks.

Gaz

Answer

Dave Amphlett picture Dave Amphlett · Mar 2, 2015

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
    }

}