如何在Laravel 5的数据库表中存储序列化对象?

时间:2019-01-04 18:50:10

标签: php database laravel laravel-5 blob

我试图将序列化的对象存储到Laravel中的数据库表中。我想将其保存为LONGBLOB,但是Laravel不支持蓝图,只允许我另存为BLOB equivalentbinary()

在我的迁移过程中,看起来像这样:

public function up()
{
    Schema::create('platforms', function (Blueprint $table) {
        $table->increments('id');

        $table->integer('user_id');

        $table->string('name');

        $table->binary('classifier');

        $table->integer('steps')
              ->default(10000);

        $table->timestamps();
    });
}

当我尝试将序列化的对象保存到数据库中时,就像这样:

protected function storeClassifier($blob, $ainame) {
    DB::table('platforms')->insert(
        [
            'user_id'       => \Auth::user()->id,
            'name'          => $ainame,
            'classifier'    => $blob
        ]
    );
}

我收到此错误:

  

SQLSTATE [22001]:字符串数据,右截断:1406第1行的列'classifier'的数据太长

如何在迁移过程中为分类器创建LONGBLOB列?完整的对象序列化了looks like this(非常大)。

0 个答案:

没有答案