Laravel在整数和数组形成的列之间创建关系

问题描述

首先:我无权更改当前数据库的列或内容。

我有两个不同的表AccountTerritory,每个表均由其模型表示。

Account:
name | uid |
############
Test |   12|
Test2|   13|
Test1|  132|
Test4|  143|

“ uid”列是整数

Territory:
###############################
name      | members            |
TestTerr  | ["12","132","13"]|
TestTerr2 | ["143"]            |

因此,基本上,“成员”列是未定义大小的php数组。

现在,我想在两者之间创建一个关系,不幸的是,由于括号[],使用纯sql无法实现这种关系。

到目前为止我尝试过的是: 试图“欺骗”口才,说这是json列->不起作用 尝试编写自己的作用域,但是摆弄后,我仍然无法提出有用的解决方案。

我认为示波器本身并不是一个坏主意,但我不能将各个部分放在一起

    public function scopeWithBuilders(\Illuminate\Database\Eloquent\Builder $query)
    {
        $query->addSelect(['builders' => Account::whereIn('uid',function(\Illuminate\Database\Query\Builder $q) {
                    return $q->select(*)->from(§this->table)->where(/*get actual row??*/)->first()
        })]);
    }

还有其他方法可以将这种关系放在一起吗?

目前,我有解决方案,可以解析视图中的每个条目并“手动”将所有内容放在一起,但这在性能方面是明智的选择,而且看起来也很丑陋。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...