Php Laravel:向轴模型添加关系

Php Laravel:向轴模型添加关系,php,laravel,pivot,eloquent,relationship,Php,Laravel,Pivot,Eloquent,Relationship,如何将关系添加到透视模型 我有以下表格: users -id events -id user_event -id -user_id -event_id tickets -price -user_event_id 因此,一个用户可以访问多个事件,而一个事件属于多个用户。现在,我希望一个用户可以有一个特殊事件的许多不同的票 我的型号如下: $event->first()->getUsers->first()->pivot->tickets->first()

如何将关系添加到透视模型

我有以下表格:

users
-id

events
-id

user_event
-id
-user_id
-event_id

tickets
-price
-user_event_id
因此,一个用户可以访问多个事件,而一个事件属于多个用户。现在,我希望一个用户可以有一个特殊事件的许多不同的票

我的型号如下:

$event->first()->getUsers->first()->pivot->tickets->first();
活动: 用户: 用户事件 票 现在,我想为一个特定用户列出一个特定事件的第一张票证: 我尝试了以下方法:

$event->first()->getUsers->first()->pivot->tickets->first();
但我收到一条错误消息:

Call to a member function first() on a non-object
我不知道该从哪里解决那个问题。我已经看过了

但这并没有解决我的问题


有什么想法吗?或者,对于Eloquent,这不是可能的吗?

您得到的错误可能是由某些输入错误(
->getUsers->first()
部分)造成的,因为您粘贴的代码在到达
->tickets
部分时应该抛出DB error
未知列事件id

所以首先解决这个问题,然后:

要使其正常工作,您需要在关系中指定外键,因为Eloquent使用
getForeignKey()
来猜测它,它在
Pivot
类上被重写,并返回不同的值(
event\u id
):


你成功了吗?
class Ticket extends Eloquent{
    // Joins
    public function getUserEvent(){
        return $this->belongsTo('user_event','user_event_id');
    }
$event->first()->getUsers->first()->pivot->tickets->first();
Call to a member function first() on a non-object
class UserEvent extends Pivot{
    protected $table = 'user_event';
    public function tickets() {
        return $this->hasMany('Ticket', 'user_event_id'); 
    }
}