首页 > 解决方案 > 在过滤掉非数字字符的同时查询字段 - Laravel

问题描述

我正处于决定如何格式化特定字段的十字路口。

标识符改变了它的document格式,所以我试图找到查询数据库表的最佳方法(如果有的话)。

假设我放入了一组新格式化的标识符,但它们以旧方式存储在数据库中。

我会输入

31120313
31146631
31256061

但在数据库中,它目前看起来像

3112031-3
3114663-1
3125606-1

我对建议持开放态度,因为它相当令人恼火,而且我以前没有想过需要这样的东西。

谢谢

标签: mysqllaravellaravel-5

解决方案


假设您有一个Document模型,您可以使用 therewhere()方法基于更改的值来复制先前的标识符的记录:

$value = substr_replace($str, '-', -1, 0);

Document::where('indentifier', $value)->first();

在这里,我们使用substr_replace在最后一个字符之前插入一个连字符来根据旧标识符查找记录。


推荐阅读