首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >套式关系的数值计算

套式关系的数值计算
EN

Stack Overflow用户
提问于 2021-09-24 15:01:46
回答 2查看 103关注 0票数 1

我有一个应用程序,用户可以控制他们的财产和租赁。

以下是定义的关系:

代码语言:javascript
复制
//Team.php
/**
 * A team can have many properties.
 */
public function properties():
{
    return $this->hasMany(Property::class);
}
代码语言:javascript
复制
//Property.php
/**
 * A property can have many leases.
 */
public function leases():
{
    return $this->hasMany(Lease::class);
}

正如您在这里看到的,一个团队可以拥有许多属性,每个属性也可以有许多租约。

我试图弄清楚如何获得与团队相关的租约数量:

代码语言:javascript
复制
$team = Auth::user()->currentTeam;

return $team->properties->leases->count();

但是,上面的代码返回一个错误:

此集合实例上不存在

属性租约。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-26 08:29:03

最后,我在hasManyThrough模型上使用了一个Team关系,如下所示:

代码语言:javascript
复制
//Team.php

/**
 * Get all of the leases for the team.
 */
public function leases()
{
    return $this->hasManyThrough(Lease::class, Property::class);
}

然后,我可以通过以下方法简单地获得特定团队创建的租约数量:

代码语言:javascript
复制
return $team->leases()->count();
票数 1
EN

Stack Overflow用户

发布于 2021-09-24 15:42:43

可以将此方法添加到Team.php中。

代码语言:javascript
复制
public function leasesCount(){
    return count(
        Team::
            join('properties', 'properties.team_id', '=', 'teams.id')
            ->join('leases', 'leases.property_id', '=', 'properties.id')
            ->where('teams.id', $this->id)
            ->get()
    );
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69317197

复制
相关文章

相似问题

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