mysqlerror.
SQLSTATE[HY000]:Generalerror:1364Field'uuid'doesn'thaveadefaultvalue(SQL:insertinto`comments`(`markdown`,`updated_at`,`created_at`)values(Hello,2016-11-2414:51:13,2016-11-2414:51:13))
CommentController
/***Createcomment.**@paramRequest$request**@returnjson*/publicfunctioncommentCreate(CommentCreateRequest$request){try{$currentUser=JWTAuth::parseToken()->authenticate();$input=$request->input();$html=Parsedown::instance()->text($input['markdown']);$uuid=UUID::uuid1()->toString();$status='published';$input=array_add($input,'uuid',$uuid);$input=array_add($input,'html',$html);$input=array_add($input,'status',$status);$input=array_add($input,'user_id',$currentUser->id);$input=array_add($input,'created_at',Carbon::now());//return$input;$comment=$this->comment->create($input);returnresponse()->json(['code'=>0,'data'=>$comment,]);}catch(ValidationException$e){returnresponse()->json(['code'=>ErrorCode::FAILED_TO_CREATE_THE_COMMENT,'message'=>ErrorMessage::FAILED_TO_CREATE_THE_COMMENT,]);}catch(QueryException$e){returnresponse()->json(['code'=>ErrorCode::FAILED_TO_CREATE_THE_COMMENT,//'message'=>ErrorMessage::FAILED_TO_CREATE_THE_COMMENT,'message'=>$e->getMessage(),]);}
migration
/***Runthemigrations.*/publicfunctionup(){Schema::create('comments',function(Blueprint$table){$table->uuid('uuid');$table->increments('id');$table->integer('user_id')->unsigned();$table->integer('post_id')->unsigned();$table->text('markdown');$table->text('html');$table->string('status');$table->timestamps();$table->softDeletes();$table->engine='InnoDB';});}
补充:
主要是其他表也有uuid
这个表,比如Post
表,就没有问题。
我把uuid
字段删除后,又报下面的错误:
SQLSTATE[HY000]:Generalerror:1364Field'user_id'doesn'thaveadefaultvalue(SQL:insertinto`comments`(`markdown`,`updated_at`,`created_at`)values(Hello,2016-11-2415:29:11,2016-11-2415:29:11))
数据库字段给个默认值吧
->default($value)为此字段指定「默认」值->nullable()此字段允许写入NULL值
把表的结构发出来看一下。00
表名:table_name
desctable_name
以后mysql版本限制会越来越严格,最好还是加上默认值吧