php - PHP SQL Server十进制/数字不能以0开头
问题描述
我将 Laravel 与数据库 SQL Server 一起使用,我的 PHP 版本是 7.4,驱动程序版本是 5.9。
如果从 Microsoft Management SQL Server 数据库中查看数据,我会遇到问题,如果我们在数据库中查看数据,数字或十进制数据类型的结果是 0.5,但是当我在 Laravel 中检索查询数据时,结果是,5 没有小数点前 0。这是一个错误驱动程序 SQL Server 吗?
对于我的查询代码 Laravel。
public function edit($id)
{
$tooling = DB::table('master_tooling')
->where('id',$id)->first();
return view('setup.master_tooling.update',compact('tooling'));
}
解决方案
PHP 可以将字符串转换".23"
为浮点数,它将被正确表示(echo (float) '.23';
打印 0.23)。您所有的Laravel
列都是字符串,Laravel
具有属性转换,这会将列更改为正确的类型。
其次,请使用Eloquent
模型,这被认为是最佳实践,并且比DB::table()
. 创建您的模型 MasterTooling.php,您可以使用以下 make 命令创建它php artisan make:model MasterTooling
。在这里你可以添加属性转换,我只添加ton_max
和ton_warn
显示。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MasterTooling extends Model
{
protected $casts = [
'ton_warn' => 'float',
'ton_max' => 'float',
];
}
您的编辑视图代码现在应该更新为此。
public function edit($id)
{
$tooling = MasterTooling::findOrFail($id);
return view('setup.master_tooling.update',compact('tooling'));
}
推荐阅读
- java - 布尔值没有正确评估?
- parse-server - 解析对象更改背景通知
- c - 使用循环使具有很多条件的 if 语句更简单
- python-3.x - 你如何将 seaborn 更新到最新版本(v0.9)?
- python-3.x -
在尝试定义功能时? - c# - 断点警告 Visual Studio 2017 调试 C# ASP.NET MVC
- c++ - 不能包含 msclr\marshal_cppstd.h - _This_conversion_is_not_supported
- php - tntsearch包的文本分类准确的数据集是什么
- reactjs - 根级组件更改导致子路由组件重新渲染
- mysql - 优化Mysql查询有count和Group by