0

既存のデータベースを使用する Zend Framework プロジェクトがあるので、データベースにあるテーブルに基づいてモデルを作成したいと考えています。コマンドラインから zf コマンドを実行でき、Netbeans で問題なく実行できます。たとえば、コントローラー/フォームの生成は問題なく機能します。ただし、コマンドを使用してデータベースからモデルを作成したい場合

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 ディレクトリは私のプロジェクト フォルダに存在します。私が作業しているモジュール(デフォルトのモジュール)であるため、アプリケーションに入る必要があると想定しています。

クエリを問題なく実行できるため、データベース接続も問題ありません。誰かがこれを修正する方法についてアイデアを持っていますか?

4

3 に答える 3

0

zf create db-table.from-databaseどんな状況でも仕事を見たことがありません。ただし、動作するはずの netbeans コマンドを試してみたい場合-m default(「デフォルト」はモジュールです。強制的に上書きするには -f を追加します)、結果のコマンドは次のようになります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強制を示す場所で機能します。1 つ目usersはクラスの名前 (Application_Model_DbTable_Users、Users.php) で、2 つ目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 に答える
0

この機能は使用していませんが、「アプリケーション」はモジュールではありません。特定のモジュールフォルダーをスキャンしたくない場合は、そのパラメーターを省略していると思います。に電話するとどうなりますzf create db-table.from-database force-overwriteか?

于 2013-01-22T23:29:55.647 に答える