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