首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从相关表中获取属性作为外键

从相关表中获取属性作为外键
EN

Stack Overflow用户
提问于 2019-12-02 18:45:40
回答 2查看 49关注 0票数 0

我有一个控制器,它返回所有的票。有一个字段user_id,它是User模型的外键。当我请求api时,我想得到的不仅是user_id,还有get name。

代码语言:javascript
复制
public function index() : TicketsResourceCollection
{
    $tickets = Ticket::all();

    return new TicketsResourceCollection($tickets);
}

工单迁移:

代码语言:javascript
复制
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
EN

回答 2

Stack Overflow用户

发布于 2019-12-02 19:22:09

在您的票证模型中:

代码语言:javascript
复制
public function user() 
{
    return $this->hasMany('App\Ticket');
}

在您的用户模型中:

代码语言:javascript
复制
public function tickets()
{
    return $this->belongsTo('App\User');
}

这样你就可以从用户那里得到门票了:

$tickets = Ticket::all()->with('users');

或者,您可以获取特定用户的所有票证:

代码语言:javascript
复制
$user = User::find(1);

$tickets = $user->tickets;
票数 0
EN

Stack Overflow用户

发布于 2019-12-02 19:26:41

如果您不需要定义关系:

代码语言:javascript
复制
$tickets = Ticket::join('users', 'users.id', '=', 'ticket.user_id')->where('ticket.user_id', 1)->select('ticket.*', 'users.*')->get();

但我建议使用幼虫关系是个好东西。

https://laravel.com/docs/6.x/eloquent-relationships

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59137289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档