模型名如果与components下的文件名同名则产生错误

模型创建正确,执行 crud AD backend/ads 提示如下错误。


exception 'CException' with message 'AD does not have a method named "behaviors".' in D:\xampp\htdocs\yii-1.1b.r1504\framework\base\CComponent.php:237

Stack trace:

#0 [internal function]: CComponent->__call('behaviors', Array)

#1 D:\xampp\htdocs\yii-1.1b.r1504\framework\db\ar\CActiveRecord.php(327): AD->behaviors()

#2 D:\xampp\htdocs\yii-1.1b.r1504\framework\cli\commands\shell\CrudCommand.php(191): CActiveRecord::model('Ad')

#3 D:\xampp\htdocs\yii-1.1b.r1504\framework\console\CConsoleCommand.php(116): CrudCommand->generateController('D:\xampp\htdocs...', Array)

#4 D:\xampp\htdocs\yii-1.1b.r1504\framework\cli\commands\shell\CrudCommand.php(177): CConsoleCommand->copyFiles(Array, 'D:\xampp\htdocs...', Array)

#5 D:\xampp\htdocs\yii-1.1b.r1504\framework\cli\commands\ShellCommand.php(142): CrudCommand->run(Array)

#6 D:\xampp\htdocs\yii-1.1b.r1504\framework\cli\commands\ShellCommand.php(99): ShellCommand->runShell(Array)

#7 D:\xampp\htdocs\yii-1.1b.r1504\framework\console\CConsoleCommandRunner.php(62): ShellCommand->run()

#8 D:\xampp\htdocs\yii-1.1b.r1504\framework\console\CConsoleApplication.php(88): CConsoleCommandRunner->run(Array)

#9 D:\xampp\htdocs\yii-1.1b.r1504\framework\base\CApplication.php(135): CConsoleApplication->processRequest(Array)

#10 D:\xampp\htdocs\yii-1.1b.r1504\framework\yiic.php(31): CApplication->run()

#11 D:\xampp\htdocs\niugu99\protected\yiic.php(7): require_once('D:\xampp\htdocs...')

#12 {main}

模型生成之后未做任何修改。

重新生成之后出现这个错误了。


Fatal error: Call to undefined method AD::model()

对比了一下 ad 和其他的模型,没有发现差异啊。请问是什么原因呢,我的数据库是 SQLite

Oh, MGD,崩溃了,我将表明改成 www_abcd 或者 www_test 都可以,就是用这个表名称(www_ads)不可以。很奇怪啊。

模型生成的数据一模一样(当然,tableName不一样),但是一个可以访问,另外一个出错,提示:


Fatal error: Call to undefined method AD::model()

哈哈,终于发现问题了(与数据库的表名无关)。

原来我的 components 下有一个文件名为 AD.php,而我现在生成的模型名也同样为 AD,这样的话,生成的模型是正确的,但是却不可以访问,访问则提示Fatal error: Call to undefined method AD::model()的错误。且 crud 会出错。为什么会出现这个错误呢?不能有同名的文件吗?请高手解答一下。非常感谢。

我的环境为:win7 + xampp + SQLite