ArthurSS
既然你的id自增主键,那么前端就不应该传递,也就是说写ActiveForm的时候不设置id这条input即可;
如果是其他原因担心id传递过来,可以用函数scenarios()解决;
比如你的model里面有三个字段:id、name、email,可以在这样写:public function scenarios() { return [ 'normal' =>['name','email'], 'manage' =>['id','name','email'] ]; }
这样再在Controller里面添加一个:model->scenario='normal';
即可使得id不会被赋值。- ArthurSS 回复了 baoying1989920 的说说
我有离线版本的手册,谁需要的话跟我联系
2.0的话求分享到 arthursswy0121@163.com 手册buff护体2333,谢谢! 之前看错题目了木好意思。。。
应该是你的Customer类中的代码问题,你试试用下debug里面的sql记录,就知道哪里出问题了;
点击表单的提交按钮,然后点击debugger(页面底部中间位置)里的log,可以看到mysql的数据库插入语句;
比如我这里提交后出现的正常的mysql语句:10 00:44:44.174 info yii\db\Command::query SHOW FULL COLUMNS FROM `releases` E:\web\Apache24\htdocs\basic\controllers\ReleaseController.php (11) 11 00:44:44.175 info yii\db\Connection::open Opening DB connection: mysql:host=localhost;dbname=xunwu E:\web\Apache24\htdocs\basic\controllers\ReleaseController.php (11) 12 00:44:44.195 info yii\db\Command::query SHOW CREATE TABLE `releases` E:\web\Apache24\htdocs\basic\controllers\ReleaseController.php (11) 13 00:44:44.195 trace yii\base\Model::onUnsafeAttribute Failed to set unsafe attribute 'file' in 'app\models\ReleaseForm'. E:\web\Apache24\htdocs\basic\controllers\ReleaseController.php (12) 14 00:44:44.213 info yii\db\Command::execute INSERT INTO `releases` (`type`, `name`, `campus`, `place`, `description`, `contact`, `picture_src`, `release_date`) VALUES ('0', '充电宝', '深旅', '教学楼J304', '小米', '13876576656', 'http://127.0.0.1:801/basic/web/uploads/1427993084.png', '15-04-03') E:\web\Apache24\htdocs\basic\controllers\ReleaseController.php (22)
- ArthurSS 2015-04-03 已签到连续签到7天,获得了20个金钱
可以在网页底部的debugger看到,点击log可以看到你执行的sql语言(也就是连贯操作的sql语句);
比如在controller里面你执行$query= ReleaseForm::find()->where(['type'=>1])->all();
注:源代码是这些:$query= ReleaseForm::find()->where(['type'=>1]); $pagination = new Pagination([ 'defaultPageSize' => 5, 'totalCount' => $query->count(), ]); $property_data= $query ->offset($pagination->offset) ->limit($pagination->limit) ->all();
在网页里你点击底部的log就可以看到:
10 21:01:36.667 info yii\db\Command::query SELECT COUNT(*) FROM `releases` WHERE `type`=1 E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (14) 11 21:01:36.667 info yii\db\Connection::open Opening DB connection: mysql:host=localhost;dbname=xunwu E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (14) 12 21:01:36.669 info yii\db\Command::query SELECT * FROM `releases` WHERE `type`=1 LIMIT 5 E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (20) 13 21:01:36.670 info yii\db\Command::query SHOW FULL COLUMNS FROM `releases` E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (20) 14 21:01:36.674 info yii\db\Command::query SHOW CREATE TABLE `releases`
这样就知道你执行了什么sql语句了
@myname9 yii2.0开启了debug后,在页面底部大概中间位置有log,比较小你看看有没有
- ArthurSS 2015-04-02 已签到连续签到6天,获得了20个金钱
- ArthurSS 2015-04-01 已签到连续签到5天,获得了20个金钱