thinkphp create方法失败的解决办法:1、写一个测试方法,模拟前端页面用户输入的数据,代码如“ public function insert2(){...}”;2、给数据库中的status字段添加默认值为1并保存设置即可。
本教程操作环境:windows7系统、thinkphp5.1版、dell g3电脑。
thinkphp create方法失败怎么办?
解决thinkphp5.1模型中create方法写入失败,但是没有错误提示
思路,写一个测试方法,模拟前段页面用户输入的数据,保存为$data,类似下面的代码
public function insert2() { $data = [ 'name'=>'chen', 'password'=>'abc1234', 'email'=>'chen@qq.com', 'mobile'=>'18285859696' ]; return usermodel::create($data); }
在浏览器中访问一下这个方法,返回如下结果,可以看到,字段status是没有默认值的,而我们也没有给他传递值,所以create方法写入失败了!
数据库中的字段截图,数据库中status字段确实没有默认值,我们给默认值选项打上勾,然后给个1值,保存然后再试试
可以看到已经成功的返回值了
心得:下次遇到不提示错误的情况,就写一个新方法,模拟前端的数据,还有个很重要的方法就是,也要去看runtime下的log,它也会提示相应的错误
[ info ] [ db ] init mysql[ sql ] [ db ] connect:[ usetime:0.001346s ] mysql:host=localhost;dbname=zh;charset=utf8[ sql ] [ sql ] show columns from `zh_user` [ runtime:0.001726s ][ error ] [10501]sqlstate[hy000]: general error: 1364 field 'status' doesn't have a default value[d:\wamp64\www\zh\thinkphp\library\think\db\connection.php:7
error就是错误,也提示了field 'status' doesn't have a default value
问题解决!
推荐学习:《thinkphp视频教程》
以上就是thinkphp create方法失败怎么办的详细内容。
