我目前正在尝试使用 Laravel 关系来使用用户模型访问我的成就模型,我使用以下关系代码:
public function achievements()
{
return $this->hasMany('App\Models\User\Achievement');
}
我可以轻松地进行一些雄辩的查询,但是我无法访问我在那里创建的任何方法,我无法访问此方法:
class Achievement extends Model
{
public function achievementsAvailableToClaim(): int
{
// Not an eloquent query
}
}
使用以下代码:
Auth::user()->achievements()->achievementsAvailableToClaim();
我相信我以错误的方式使用这个 Laravel 函数,因为我在不使用关系的情况下尝试了其他方法:
public function achievements()
{
return new \App\Models\User\Achievement;
}
但这会产生性能问题,因为每次在用户模型中使用成就函数时,我都会创建一个新的类实例吗?
我想做的事情的正确方法是什么?
凤凰求蛊
明月笑刀无情