Should I always provide default value in php for TEXT fields in mysql -
i seek insert new record in table using eloquent orm included laravel framework insert statement resulted follows:
inset table_x
(field_x
, field_y
, field_z
) values (0, 1, 2)
i receive next error mysql server:
sqlstate[hy000]: general error: 1364 field 'field' doesn't have default value
i not provide field in insert statement. field of type text , mysql docs: "blob , text columns cannot have default values".
so have provide myself default value in php code text fields? or maybe should eloquent take care of , set empty string automatically on insert?
mysql not back upwards having default values in text columns. have manually tell laravel/mysql set in column. example.
insert table_x (field_x, field_y, field_z, your_text_field) values (0, 1, 2, "");
or
insert table_x (field_x, field_y, field_z, your_text_field) values (0, 1, 2, null);
so in eloquent model, you'll have like.
$mymodel->your_text_field = '';
or
$mymodel->your_text_field = null;
depending on whether have set column nullable or not.
update: mihai crăiță question author commented in answer, , in github ticket, can set default columns in eloquent model way, don't need worry having set manually time.
class mymodel extends eloquent { protected $attributes = array('your_text_field' => ''); ... }
php mysql laravel eloquent
No comments:
Post a Comment