2011-02-03 7 views
0

私はZend 1.11を使用しています。私は、ユーザーから入力を受け取り、正常に動作するデータベーステーブルにデータを保存するフォームを持っています。Zend PHPフレームワークで1つのモデルに対して2つのフォームを実装する方法

しかし、Excelワークシートを使用して複数のレコードをデータベーステーブルにインポートできる機能も実装したいと考えています。私はこのためにPHPExcelライブラリを使用しています。

現在のところ、すべてのフォームは\library\App\Form\であり、命名規則はModelNameForm.phpです。ファイルのアップロードに対応するモデルの2番目のフォームを追加するにはどうすればよいですか?

多くのありがとう、

Sid。

答えて

0

解決方法は簡単です。

私はMVCのアプローチに精通していますが、初めてZendを使用しているので難しかったです。

私はCakePHPを使用していましたが、Zendはユーザーが独自の規則を作成することができるのに対し、開発者は規約に従う必要がありました。

私が取り組んでいるZendアプリケーションは、この命名規則がZendの一部であるかどうかわからないため、私を混乱させるフォームクラス(ModelNameForm.php)に独自の命名規則を使用した同僚によって作成されました。フォームクラスの名前は何でもかまいません。

Zend IRCチャンネルにアクセスした後、他のフォームと一緒に別のフォームクラスを作成し、それを使用するコントローラーの機能で指定する名前を付けて名前を付けることができると言われました。

私は別のフォームクラスを作成し、それを使用した関数で指定しました。

これを実行した後、最初のフォームとは異なる1フィールドしかなかったので、2番目のフォームを作成する必要はないことが分かりました。これは、最初のフォームクラスのifステートメント。

0

フォームのクラスインスタンスを保存できるモデルのプロパティを作成するのはなぜですか。それでは、例えば次のようなメソッドを作ることができます。モデルのgetForm()を使用すると、そのフォームの名前でフォームにアクセスできます。それは私が最初に考えることを思いついたものです。

1

私はこれに似たレイアウトを持っていますが、フォームクラスで静的関数呼び出しを使用して特定のタイプのフォームを取得しています。たとえば、

class User_Model_Form extends My_Form 
{ 
    // All functions can be passed a model to pre-populate the form 
    // when editing and existing model 

    public static function getRegisterForm($model = null) 
    { 
     // Build and return form here 
    } 

    public static function geLoginForm($model = null) 
    { 
     // Build and return form here 
    } 

    public static function getChangePasswordForm($model = null) 
    { 
     // Build and return form here 
    } 

    // Etc 
} 
+0

この方法は、1つのモデルに多数の異なるフォームがある場合に便利です。ありがとう。 – Sid

関連する問題