【发布时间】:2020-09-28 13:43:03
【问题描述】:
在我的 laravel 项目中,我建立了一个评论部分,并希望在他们的评论旁边显示评论的人的姓名。
最初我只有用户 ID,所以我建立了一个关系 (hasOne) 将 comment 表 (comment & authorID) 链接到 users 表 (id (authorID)和用户名)
Comment.php(模型)是:
[..]
public function author()
{
return $this->hasOne(User::class, 'id', 'Author');
}
User.php 模型是:
<?php
[..]
public function author()
{
return $this->hasMany(Comment::class, 'Author', 'id');
}
在控制器中,我通过以下方式获取数据:
$comments= Comments::where('LinkID', (string) $id)->with('author')->orderBy('updated_at', 'ASC')->get()->all();
这行得通,但它给了我每条评论的用户的整行。出于安全原因,我只想返回行(用户名)的“名称”字段,而不返回其余部分(电子邮件、时间戳等)。
我怎样才能做到这一点?
【问题讨论】:
标签: laravel eloquent relationship