belongsTo不适用于laravel

时间:2015-05-05 20:49:12

标签: laravel-5

在我的应用中,我有用户和门票。

在表'门票'中我有一个外键,如下所示:

$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');

在模型'Ticket'中我有这种关系:

public function owner()
{
    return $this->belongsTo('App\User');
}

用户模型:

public function createdTickets()
{
    return $this->hasMany('App\Ticket');
}

通过这样做:

dd(\Auth::user()->createdTickets()->get()->toArray());

我得到所有门票,这里没问题。但是当我试图从票证中获取所有者时,它给了我null:

$ticket = \Auth::user()->createdTickets()->first();
dd($ticket->owner); //if I try dd($ticket) it juts fine.

PS:为了记录,我在两个模型(多对多)之间有另一种关系

票:

public function followers()
{
    return $this->belongsToMany('App\User')->withTimeStamps();
}

用户:

public function followingTickets()
{
    return $this->belongsToMany('App\Ticket')->withTimeStamps();
}

1 个答案:

答案 0 :(得分:0)

我在laracasts论坛上得到了答案:

Laracasts

for" belongsTo"关系eloquent使用外键上的方法名称。我正在使用owner(),因此雄辩地寻找owner_id字段。

所以我必须这样做:

public function owner()
{
    return $this->belongsTo('App\User', 'user_id');
}