我有一个包含现有数据库的Zend Framework项目,所以我想基于我在数据库中的表创建模型。我可以从命令行和Netbeans中运行zf命令就好了,例如生成控制器/表单就可以了。但是,当我想使用命令
从数据库创建模型时zf create db-table.from-database application force-overwrite
它给了我这个错误:
A models directory was not found for module application.
Zend Framework Command Line Console Tool v1.12.1
Details for action "Create" and provider "DbTable"
DbTable
zf create db-table name actual-table-name module force-overwrite
zf create db-table.from-database module force-overwrite
当我用
尝试时,会发生同样的事情zf create db-table.from-database Application force-overwrite
只是为了澄清:models目录是否存在于我的项目文件夹中。我假设我必须输入应用程序,因为它是我正在使用的模块(默认模块)。
我的数据库连接也很好,因为我可以很好地执行查询。有没有人知道如何解决这个问题?
答案 0 :(得分:0)
我没有使用过这个功能,但“应用程序”不是一个模块。如果你不想让它扫描特定的模块文件夹,我猜你会把这个参数留下来。如果您只是致电zf create db-table.from-database force-overwrite
会怎样?
答案 1 :(得分:0)
与大多数事情一样,问题可以像区分大小写和/或拼写错误的目录名称/路径一样简单。 如果没有互动/模拟,我不相信这个问题可以解决。
答案 2 :(得分:0)
我从未见过zf create db-table.from-database
在任何情况下工作。但是,如果您想尝试应该运行的netbeans命令-m default
('default'是模块,添加-f for force overwrite),结果命令将如下所示:zf create db-table.from-database -m default
。
我个人只是使用zf create db-table
命令来创建我需要的db-table模型。
此命令将起作用zf create db-table users users -m admin -f
其中-m admin
(似乎需要-m)是模块,-f
表示强制写入。第一个users
是类的名称(Application_Model_DbTable_Users,Users.php),第二个users
是数据库表的实际名称。
我不知道你对模型的期望是什么,你会得到的东西非常类似于:
<?php
class Application_Model_DbTable_User extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
}
这是使用Zend_Db组件时非常重要的一个类,但如果你是ZF的新手,可能会有点混乱。