ArthurSS

ArthurSS

前端转后台,吃定Yii

  • 财富值1432
  • 威望值50
  • 总积分2542

个人信息

  • 既然你的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不会被赋值。

  • 回复了 的说说
    我有离线版本的手册,谁需要的话跟我联系
    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)
    
  • 2015-04-03 已签到
    连续签到7天,获得了20个金钱
  • 回复了 的回答

    如果你指的是需要在网络上发布你的网站,那么你的网站根目录应该是web文件夹,而非YII2 ROOT,如果你是虚拟主机,还需要参考文档的共享主机那一章节。

    网站根目录是web文件夹的话,其他文件夹放在什么地方?比如controller、assets、config一类的。

  • 回复了 的回答

    可以在网页底部的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语句了

    yii2.0开启了debug后,在页面底部大概中间位置有log,比较小你看看有没有

  • 2015-04-02 已签到
    连续签到6天,获得了20个金钱
  • 2015-04-01 已签到
    连续签到5天,获得了20个金钱
  • 回复了 的回答

    请问是怎么样上传?建议使用git

    明白了,我以后用git

总监 等级规则
2542/5000
资料完整度
100/100
用户活跃度
0/100

Ta的关注

10

Ta的粉丝

13

Ta的访客

55