无法添加/更新用户(虽然可以列出并删除它们)

时间:2010-05-21 01:46:26

标签: php yii

我做了

yiic shell "/path/to/my/app"

model *

crud users

我无法添加或更新用户。我可以列出它们并删除它们。我还以为我应该看到主键。

CREATE TABLE IF NOT EXISTS `users` (
  `user_id` int(11) NOT NULL auto_increment,
  `user_username` varchar(25) collate latin1_general_ci NOT NULL,
  `user_username_clean` varchar(25) collate latin1_general_ci NOT NULL,
  `user_password` varchar(64) collate latin1_general_ci NOT NULL,
  `user_register_time` int(11) NOT NULL,
  `user_code` varchar(15) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`user_id`)
) ENGINE=InnoDB;

4 个答案:

答案 0 :(得分:2)

可能的原因可能是您在config / main.php中提供的DB用户名/密码无权修改数据库。只是猜测,发布有关该问题的更多细节,以便更好地理解它。

答案 1 :(得分:1)

看起来上面有关数据库权限的建议就是答案,但只是一个友好的说明:Yii的新版本有一个名为“Gii”的新的可视(GUI)CRUD生成器。看看这里的说明,它比yiic好得多,可以解决创建CRUD代码的一些问题:

http://www.yiiframework.com/doc/guide/quickstart.first-app#generating-crud-code

答案 2 :(得分:1)

问题是在loadModel

中生成函数appController.php

生成器创建函数loadModel,如下所示:

public function loadModel($id)
{
    $model=App::model()->findByPk((int)$id);   //  <- Error Line 
    if($model===null)
        throw new CHttpException(404,'The requested page does not exist.');
    return $model;
}

正确的loadModel函数如下:

public function loadModel($id)
{
    $model=App::model()->findByPk($id);   //  <- Fixed Line
    if($model===null)
        throw new CHttpException(404,'The requested page does not exist.');
    return $model;
}

我希望有助于更好地理解问题并在包中更正它们而不触及生成器的原始,因为它应该出现在YII更新自己的更正中。

答案 3 :(得分:0)

修补程序以启用非整数主键

--- yii-1.1.5.r2654/framework/cli/views/webapp/protected/config/main.php    2010-11-14 20:35:42.000000000 +0000
+++ yii-1.1.5.r2654/framework/cli/views/webapp/protected/config/main.php    2010-12-09 16:59:01.783001000 +0000
@@ -42,4 +42,5 @@
                '/'=>'/view',
                '//'=>'/',
+               '//'=>'/',
                '/'=>'/',
            ),

--- yii-1.1.5.r2654/framework/gii/generators/crud/templates/default/controller.php  2010-11-14 20:35:45.000000000 +0000
+++ yii-1.1.5.r2654/framework/gii/generators/crud/templates/default/controller.php  2010-12-09 16:47:54.053001002 +0000
@@ -163,5 +163,5 @@
    public function loadModel($id)
    {
-       $model=modelClass; ?>::model()->findByPk((int)$id);
+       $model=modelClass; ?>::model()->findByPk($id);
        if($model===null)
            throw new CHttpException(404,'The requested page does not exist.');

--- yii-1.1.5.r2654/framework/gii/GiiModule.php 2010-11-14 20:35:45.000000000 +0000
+++ yii-1.1.5.r2654/framework/gii/GiiModule.php 2010-12-09 16:49:22.183001002 +0000
@@ -53,4 +53,5 @@
  *             'gii/'=>'gii/',
  *             'gii//'=>'gii//',
+ *             '//'=>'/',
  *             ...other rules...
  *         ),