如何通过 Laravel 中的外键检索数据?
Posted
技术标签:
【中文标题】如何通过 Laravel 中的外键检索数据?【英文标题】:How to retrieve data through Foreign Key in Laravel? 【发布时间】:2019-09-04 14:11:15 【问题描述】:如何在 Laravel 中检索数据。
我有表用户,其中我有字段 parent_id,我在其中显示其 user_id 的信息。
现在我想显示登录用户的信息
我试过了
Auth::user()->parent_id
我得到了选定的 parent_id,现在我想要那个 user_id 的名称。
我正在尝试这个
(Auth::user()->parent_id)->value('name')
它得到一个错误。 请告诉我如何在我的代码中编写此代码以获取该父 ID 的名称。
【问题讨论】:
【参考方案1】:有(至少)两种方法可以做到这一点。
1- 无关系:您可以通过parent_id
选择/查找用户并获取其名称。像这样的:
App\User::find(Auth::user()->parent_id)->name
2- 有关系:我认为这更容易。定义关系并将parent_id
设置为外键。然后你可以得到父用户。像这样的:
Auth::user()->parentUser->name // parentUser is the method created in User model
要定义和使用关系,请参阅@Tharaka Dilshan 答案。
【讨论】:
【参考方案2】:在User
modal 中定义与父用户的关系。
用户模式
public function parent()
return $this->belongsTo(User::class, 'parent_id');
刀片
Auth::user()->parent->name
【讨论】:
以上是关于如何通过 Laravel 中的外键检索数据?的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Laravel Vue 通讯录项目中的外键表中获取数据