0

我有一个带有现有数据库的 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

只是为了澄清:模型目录确实存在于我的项目文件夹中。我假设我必须输入应用程序,因为它是我正在使用的模块(默认模块)。

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

4

3 回答 3

0

我没有使用过这个功能,但“应用程序”不是一个模块。如果您不希望它扫描特定的模块文件夹,我猜您会忽略该参数。如果你只是打电话会发生什么zf create db-table.from-database force-overwrite

于 2013-01-22T23:29:55.647 回答
0

我从未见过zf create db-table.from-database在任何情况下工作。但是,如果您想尝试应该工作的 netbeans 命令-m default(“默认”是模块,添加 -f 强制覆盖),结果命令将如下所示zf create db-table.from-database -m default

就我个人而言,我只是使用该zf create 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 的新手,它可能会有点混乱。

于 2013-01-23T08:34:47.330 回答
0

与大多数事情一样,问题可能很简单,例如区分大小写和/或拼写错误的目录名称/路径。我不相信没有交互/仿真就可以解决这个问题。

于 2013-01-23T00:00:07.780 回答