Laravel关系(Laravel Relationships)

2019-09-01 02:41发布

我一直在寻找通过在Laravel 4的关系文件 ,我试图找出以下。

我有一个表在我的数据库称为“事件”。 此表有主要包含ID的,涉及到其他表各个领域。 例如,我有一个“课程”表。 事件表包含一个称为“COURSE_ID”字段,它涉及在课程表中的“ID”字段的ID。

所以基本上,我后你如何与这两个(属于关联()?),然后连接的数据传递到视图一些建议来的。

下面是我在迄今为止哪里http://paste.laravel.com/pf3 。

我希望你们能够给我就如何最好地处理这个问题的一些建议。 谢谢。

Answer 1:

这基本上是相同的答案@MarkoAleksić,但与hasOne()和属于关联()关系的正确途径周围。

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
    }

}


Answer 2:

你需要在这两种模式,以指定的关系。 属于关联()中的一个,hasOne()在对方,因为你使用的是一比一的关系

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');
    }

}

然后调用它的路线或控制器将是如下:

特定事件的场(在这种情况下为1的id)

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

具体课程的事件(在这种情况下,ID为1)

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

请参阅Laravel 4文档,部分雄辩ORM: http://laravel.com/docs/eloquent#one-to-one



文章来源: Laravel Relationships