Zend_Tool,create db-table.from-database在项目中不起作用(找不到模块)

时间:2013-01-22 19:58:44

标签: php mysql zend-framework

我有一个包含现有数据库的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目录是否存在于我的项目文件夹中。我假设我必须输入应用程序,因为它是我正在使用的模块(默认模块)。

我的数据库连接也很好,因为我可以很好地执行查询。有没有人知道如何解决这个问题?

3 个答案:

答案 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的新手,可能会有点混乱。