laraval 访问器可以临时关闭或者获取原始数据吗?

发布于 2022-09-05 21:25:24 字数 317 浏览 18 评论 0

laravel访问器可以格式化一些字段值,很方便。比如支付状态,数据库里面保存1,通过访问器可以很容易转换成 已支付 在模板显示。


现在问题是,有时候我们需要判断是否已支付,比如如下情景

if($payStatus == 1){
    //do something
}

如果定义了访问器,此时的 $payStatus 为 '已支付',导致上面的判断不成立。
laravel有没有可以临时获取原始数据的办法或者临时关闭访问器的办法?文档总好像没有提到一点。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

攒一口袋星星 2022-09-12 21:25:25

你难道把原来的替换掉了?

建议你这样做

clipboard.png
在model层追加字段

clipboard.png
然后用访问器赋值给追加字段

对于数据库里的原始字段个人建议最好不要覆盖,我的项目订单的金额数据库里存的是分(int整形),用访问器改成了两位小数,元(decimal,2),就是直接覆盖原始字段的做法

上个月突然尴尬的发现要使用‘分’这个原始数据,总不能再转化回来把?然后开始苦B的往回改,现在回想起来头都要炸了,那么多地方都在用model层(我们的model层独立出来的,其他项目作为依赖都在用),真不知道怎么改回来的

中途改漏了一个地方,商户给买家退款,30退成了3000 。。。啊西巴~~~

如果解决了你的问题,望采纳~

别想她 2022-09-12 21:25:25

赞同楼上, 数据库中的数据最好不要改.

你需要什么样的格式, 直接格式化就好了.

许一世地老天荒 2022-09-12 21:25:25

你可以使用查询构建器 直接查询原始值

DB::table('order')->where('id',$request->get('id'))->value('payStatus');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文