修复了在Laravel中从数据库中检索十进制作为字符串的问题



如果我有一个像'price'这样的列作为小数,当我从数据库获得这个值时,它返回一个字符串而不是小数或浮点数。我该如何解决这个问题?

您可以在显示之前这样做;

$price = (float)$product->price;

或者你可以创建一个函数,它会工作。

您可以通过在模型

中进行cast来解决整个项目。
protected $casts = ['column_name' => 'type'];

的例子:

protected $casts = ['price' => 'float'];

文档链接:点击这里

在迁移中确保列是十进制

public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->decimal('price');
});
}

然后在模型中强制转换:

protected $casts = [
'price' => 'decimal:2',
];

现在你可以在控制器或前端中检索它

$price = Product->price; --> in the Controller
{{ $product->price }} --> in the view

最新更新