在哪里放置用户相关的get函数

时间:2016-08-29 21:18:18

标签: laravel eloquent relationships

我有一个问题,我现在已经工作了很长时间。

我正在使用Laravel 5.0并建立了关系:

  • 用户可以拥有多个行程
  • 行程可以有多个目的地
  • 用户通过行程有许多目的地

现在我正在尝试在许多控制器中设置一个我需要的功能。我在User.php中有这个功能:

public function last_destination() {
    return $last_destination =
        \App\Destination::where('itinerary_id', auth()->user()->active_itinerary_id)
        ->orderBy('order_index', 'DESC')
        ->first();
}

当我尝试检索最后一个目的地时,它工作正常,但是当我将最后一个目的地作为变量传递给视图时,它会导致错误:Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation

我应该把这个功能放在另一个班级吗?如果是这样我应该把它放在哪里仍然可以称之为$ user-> last_destination()?

我感谢任何帮助!

非常感谢! 塞巴斯蒂安

1 个答案:

答案 0 :(得分:1)

您最有可能尝试在某处调用Relation,就像该方法返回$user->last_destination()一样。

请尝试使用Relation。或者更新您的方法以返回username实例。