首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加hasMany关系查询laravel?

添加hasMany关系查询laravel?
EN

Stack Overflow用户
提问于 2022-01-15 15:44:14
回答 1查看 451关注 0票数 0

我如何hasMany关系,得到最后的5个用户,我尝试使用模型和巫婆hasMany的关系出现空。我已经做了很多测试,在每次查询中获得最后5个用户时,我总是遇到关系问题。

查询:

代码语言:javascript
复制
   $minute = Minute_Report::Query()->whereBetween('minutos.fecha', [$from, $to])
                ->join('clients', 'minutos.cliente', '=', 'clients.id')
                ->join('users as asesor', 'minutos.psiquico', '=', 'asesor.id')
                ->select(
                    'minutos.id',
                    'clients.code',
                    'clients.id as client',
                    \DB::raw("CONCAT(clients.firstname_c,clients.lastname_c) As client_full_name"),
                    \DB::raw("CONCAT(asesor.first_name,asesor.last_name) As asesor_full_name"),
                    'minutos.date2 As fechas',
                    'minutos.minutos',
                    \DB::raw('(CASE 
                WHEN minutos.motive = "MINUTOS GRATIS" THEN "GRATIS" 
                ELSE "PAGO" 
                END) AS status_lable'),
                    'minutos.motive',
                    'minutos.time_a',
    
                );
    
            $data = $minute->get();

结果:

代码语言:javascript
复制
[
asesor_full_name: "Lucero /Liliana Fuentes"
client: 2079
client_full_name: "NICOLE MSALLS OCACIO"
code: 2078
fechas: "2021-01-01 09:40:44"
id: 64208
minutos: 27
motive: "MINUTOS GRATIS"
status_lable: "GRATIS"
time_a: "40"
]

成功:

代码语言:javascript
复制
[
    asesor_full_name: "Lucero /Liliana Fuentes"
    client: 2079
    client_full_name: "NICOLE MSALLS OCACIO"
    code: 2078
    fechas: "2021-01-01 09:40:44"
    id: 64208
    minutos: 27
    motive: "MINUTOS GRATIS"
    status_lable: "GRATIS"
    time_a: "40"
    users[
        1,
        2,
        3,
        5
     ]
    ]
EN

回答 1

Stack Overflow用户

发布于 2022-01-15 19:34:46

我不知道我做得对不对,但我会尽力帮忙的。

您在Minute_Report模型中定义了与用户模型的关系吗?什么是关系栏?应该就像

代码语言:javascript
复制
public function users()
{
    return $this->hasMany(User::class, 'xxx');
}

在你的Minute_Report模型上。'xxx‘指的是用户表上的关系列名。

然后,您应该在查询中添加“with(‘user’)”。就像这样:

代码语言:javascript
复制
$minute = Minute_Report::Query()->whereBetween('minutos.fecha', [$from, $to])
                ->join('clients', 'minutos.cliente', '=', 'clients.id')
                ->join('users as asesor', 'minutos.psiquico', '=', 'asesor.id')
                ->select(
                    'minutos.id',
                    'clients.code',
                    'clients.id as client',
                    \DB::raw("CONCAT(clients.firstname_c,clients.lastname_c) As client_full_name"),
                    \DB::raw("CONCAT(asesor.first_name,asesor.last_name) As asesor_full_name"),
                    'minutos.date2 As fechas',
                    'minutos.minutos',
                    \DB::raw('(CASE 
                WHEN minutos.motive = "MINUTOS GRATIS" THEN "GRATIS" 
                ELSE "PAGO" 
                END) AS status_lable'),
                    'minutos.motive',
                    'minutos.time_a',

            )->with('users');

        $data = $minute->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70722943

复制
相关文章

相似问题

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