我正在构建一个mysql database
到laravel
。在迁移文件中,我将一列设置为json type
,但当我使用此命令php artisan migrate:fresh
创建migration
时,数据库已成功创建,但没有使用我在迁移文件早期设置的正确列类型。以下是我的迁移文件代码。
public function up()
{
Schema::create('questions', function (Blueprint $table) {
$table->id();
$table->json('conf');
$table->timestamps();
});
}
这里conf
列的类型不再是我的数据库中的json
,而是迁移后的longtext type
。为什么?
将其添加到表的模型中会对您有所帮助。
class Question extends Model
{
protected $casts = [
'conf' => 'array',
];
}
它将把列强制转换为一个可以使用的对象数组。