mariadb Laravel工厂在插入到数据库时在数据周围加上引号

laximzn5  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(135)

我正在使用模型工厂来填充模型CouponRule

<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

class CouponRuleFactory extends Factory
{

    public function definition()
    {
        return [
            'coupon_id' => 286,
            'coupon_rule_type_id' => 8,
            'data' => "{'min': 100}",
            'created_at' => now(),
            'updated_at' => now(),
        ];
    }
}

当我使用CouponRule::factory()->create()创建一个新示例时,数据值在我的数据库中被括在引号中:

"{'min': 100}"

数据字段定义为text()

Schema::create('coupon_rules', function (Blueprint $table) {
    //...
    $table->text('data');
   //...
});

我已经确认它 * 是 * 用引号 Package 的(不仅仅是数据库工具DataGrip如何呈现它),方法是使用MariaDB CLI检查,并直接在数据库中删除值的引号-这导致它按预期显示。
版本:

  • 第10.7.3节.
  • 拉腊维尔2018年8月3日
3pvhb19x

3pvhb19x1#

我认为您正在寻找一个NoSQL概念,您可以将对象嵌套在列中。您仍然可以在SQL中执行此操作,但您必须在服务器端以JSON编码格式编写它(用“” Package )。在LARAVEL中,您可以使用json_decoce($value)对其进行解码,以获取值

相关问题