0

Cakephp Web サイト内で、次のモデルを取得しました

  • アイテム
  • カテゴリー
  • 科目

アイテム/アイテムについて、寄付フォームを表示したい。たとえば、アイテム/アイテム/?id=1234

<h1>item name</h1>
<p>item description</p>


<br />
<p>Would you like to make a donation?</p>
<form method="post" action="???">
<input type="text" name="ccNumer" />
<input type="text" name="ccExpiry" />
<input type="text" name="ccName" />
<input type="submit">
</form>

donations とは関係がなく、他の場所itemsでも使用できるため、これcategoriesを適切な方法で行う方法がわかりません。それはおそらくコンポーネントであるべきですか?

4

2 に答える 2

1

あなたが使用している CakePHP のバージョンがわからないので、cakePHP 2 を想定しています。バニラ PHP と同じように、任意のクラスに他のクラスをロードできます。別のモデルを含めるには、次のようにします

App::uses('Donation', 'Model');     // first parameter being your ModelName and second the path

オブジェクトをインスタンス化することで、モデルのメソッドを使用できるようになりました。

$donationObj = new Donation();
$donationObj->methodName();

詳細については、こちらの公式ドキュメントを参照してください。
http://book.cakephp.org/2.0/en/core-utility-libraries/app.html

于 2013-05-31T05:02:09.577 に答える
1

アプリケーション内の任意の場所にあるモデルに簡単にアクセスするには、 を使用しますClassRegistry::init()。(参照: ClassRegistry )。ClassRegistry::init()使用可能なモデルを初期化します。

たとえば、モデルのメソッドにアクセスするには、次のようにします。

$result = ClassRegistry::init('Donation')->methodName();

または、モデルのインスタンスを取得します。

$MyModel = ClassRegistry::init('Donation');

$result  = $MyModel->methodName();
$resultB = $MyModel->anotherMethod();

追加するApp::uses(...)必要さえありません。 ClassRegistry がそれを処理する必要があります。

于 2013-06-03T07:24:56.937 に答える