laravel - 在 Eloquent 中,有没有办法在关系查询中使用 sql 函数
问题描述
我正在使用 Laravel 在 Eloquent 中工作,并且我有一张名为invoices.
每张发票都有一个前缀来标识dealer id
.
例如,
01-1234
是来自 的发票dealer 01
。02-5678
是来自 的发票dealer 02
。
更复杂的是,经销商的 id 不是01
or 02
,而是DEALER01
or DEALER02
。
我想知道是否可以让这样的查询起作用,以便发票对象具有关联的经销商对象,而无需编写大量重复代码来循环发票并手动链接它们。
public function dealer() {
return $this->hasOne(Invoice::class, 'dealerId', 'concat(\'DEALER\', substr(Invoice.invoice, 1, 2))')
}
以下是发票表结构中的一些字段:
发票 | 客户 | 日期 |
---|---|---|
01-1234 | 1 | 2021-06-05 |
02-1235 | 2 | 2021-06-06 |
以下是经销商结构中的一些领域:
经销商编号 | 县 | default_sales_acct |
---|---|---|
经销商01 | 某县 | 1234 |
经销商02 | 别的县 | 5678 |
在这种情况下,链接这两个表所需的唯一字段是dealerId 和invoice 的前两个字符。
解决方案
推荐阅读
- python - 将文本附加到 xml 标记值
- angular - 可选依赖项
- python - 返回的输出未进入 xlsxwriter
- node.js - 如何通过 AD FS 在 React 中进行身份验证?
- java - 尽管服务器没有运行,socket() 没有抛出异常
- java - 如何在java上显示所有对象
- python - Python:合并两个模型以创建具有两个分类数据的新模型
- java - Jasper 报告空白页
- java - 如何使用 NavigableIndex 从 cqengine IndexedCollection 获取第一项或最后一项
- angular - Angular 6 材料 - 如何从 matDatepicker 获取日期和时间?