I want to set empty array for column interests. I've added field as json and cast it as array in my model. Below are my code snippets :
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('db_invitations', function (Blueprint $table) {
if(!Schema::hasColumn('db_invitations','interests')){
$table->json('interests');
}
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('db_invitations', function (Blueprint $table) {
if(Schema::hasColumn('db_invitations','interests')){
$table->dropColumn('interests');
}
});
}
Also in model :
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'interests' => 'array'
];
So what i need to do to show default [] in interests column ?
CodePudding user response:
In your model do following as in my knowledge for json datatype in mysql can not have default values
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'interests' => 'array'
];
protected $attributes = [
'interests' => [];
];