Friday, 15 June 2012

Should I always provide default value in php for TEXT fields in mysql -



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