【发布时间】:2021-12-31 23:47:19
【问题描述】:
我使用 Laravel(+Eloquent 模型)连接到旧数据库。
我的模型的字符串属性用空白填充。 (由于数据库内部的数据)
当前输出(为便于阅读,以 JSON 格式)如下所示:
{
"THIRDNAME": "Company ",
"THIRDNAME2": "",
"THIRDADDR": "Street Of Company 117/1 ",
"THIRDADDR2": "",
"THIRDZIP": "1740 ",
"THIRDCITY": "TERNAT "
}
我无法更改该数据库(其他使用它的旧工具),但我想在查询数据库时更改这些属性。 (使用 Eloquent 模型)
要得到这样的东西:
{
"THIRDNAME": "Company",
"THIRDNAME2": "",
"THIRDADDR": "Street Of Company 117/1",
"THIRDADDR2": "",
"THIRDZIP": "1740",
"THIRDCITY": "TERNAT"
}
Laravel 文档中提到了 "Mutators & Casting",但它需要提供特定的字段进行转换。
我想对所有模型的所有字符串属性应用自定义“cast”或“mutator”(基本TRIM操作)。
你将如何在 Laravel 中实现这一点?
谢谢
【问题讨论】:
-
如何从数据库中获取数据?在查询中使用
trim() -
谢谢@brombeer。不幸的是,我使用默认的 Eloquent 方法进行查询。像这样:
MyModel::where('property1', 'valuetoMatch')->first();我不使用“自定义 SQL 查询”。 (这不是一个真正的选择,因为我希望 Eloquent “自动发现”我表的所有列)