首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >3个表之间的雄辩关系问题

3个表之间的雄辩关系问题
EN

Stack Overflow用户
提问于 2019-06-02 05:50:40
回答 1查看 37关注 0票数 0

我有这4张表:

代码语言:javascript
运行
复制
events (id, name, date)
drivers (id, first_name, last_name)
participants (id, number, event_id, driver_id, codriver_id)
penalties (id, event_id, participant_id)

如何在显示惩罚表时获取驱动程序/辅助驱动程序first_name和last_name?

我尝试过这样做,但不起作用:

代码语言:javascript
运行
复制
$grid->participant()->driver()->full_name();
$grid->participant()->codriver()->full_name();

惩罚模型:

代码语言:javascript
运行
复制
public function participant()
    {
        return $this->belongsTo(Participant::class);
    }

参与者模型:

代码语言:javascript
运行
复制
public function driver()
    {
        return $this->belongsTo(Driver::class);
    }

    public function codriver()
    {
        return $this->belongsTo(Driver::class);
    }

驱动程序模型:

代码语言:javascript
运行
复制
public function getFullNameAttribute()
    {
        return $this->first_name . ' ' . $this->last_name;
    }

我该怎么做呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-06-02 06:19:41

->relation_name()返回关系查询构建器:

要获取关系对象,应将关系作为属性调用,而不是作为函数调用(与full_name属性相同):

代码语言:javascript
运行
复制
$grid->participant->driver->full_name;

它相当于:

代码语言:javascript
运行
复制
$grid->participant()->first()->driver()->first()->full_name;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56410685

复制
相关文章

相似问题

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