在 Eloquent 关系上使用 first()
Posted
技术标签:
【中文标题】在 Eloquent 关系上使用 first()【英文标题】:Using first() on Eloquent Relationships 【发布时间】:2022-01-15 05:17:56 【问题描述】:美好的一天。我在我正在维护的代码中看到了这个 sn-p。我试图理解它的含义(比如我什至必须向某人解释)。谁能帮助简化? 代码如下所示。
public function pullFrom(string $appType)
switch ($appType)
case 'personal':
case 'plugin':
return $this->belongsTo(PersonalUser::class, 'local_id')->first();
default:
throw new \Exception('Invalid user type provided', Response::HTTP_INTERNAL_SERVER_ERROR);
和$user->pullFrom($app_type)->first();
一样吗
【问题讨论】:
这是在名为 User.php 的模型中吗? 你认为这段代码“意味着”什么,是吗?您的问题说“方法与调用方法是否相同”没有意义... 是的@GilesBennett,它在一个名为 User.php 的模型中 【参考方案1】:我认为你应该从 belongsTo 关系中删除 ->first() 默认情况下,belongsTo 仅返回与其相关的类的 1 个元素,并将其从您所做的调用中删除:
public function pullFrom(string $appType)
switch ($appType)
case 'personal':
case 'plugin':
return $this->belongsTo(PersonalUser::class, 'local_id');
default:
throw new \Exception('Invalid user type provided', Response::HTTP_INTERNAL_SERVER_ERROR);
【讨论】:
谢谢@Marwane以上是关于在 Eloquent 关系上使用 first()的主要内容,如果未能解决你的问题,请参考以下文章
laravel eloquent - 在嵌套急切加载的关系上不使用
Laravel Eloquent 关系有很多错误:在 where 上使用时调用未定义的方法