0

関数 getRooms() でブロックを作成しました。この関数は、2 つのテーブルに対して joinLeft クエリを作成し、アイテム コレクションを返します。実際には、グループ、合計、およびその他の可算フィールドがあるため、最初の部屋のコレクションではありません。

phtml テンプレートでこれらのコレクションをレンダリングし、各項目をチェックして関数を呼び出す必要があります。

例えば:

<?php $rooms = $this->getRooms();
foreach ($rooms as $room) : ?>
<?php if ( $this->isAvailable($room) ) : ?>
<!-- some html here -->

isAvailable 関数は $room 値で機能するため、次のように呼び出す必要があると感じています

$room->isAvailable();

それ以外の

$this->isAvailable($room) 

この場合、isAvailable() はモデルにある必要があります。しかし、どのモデルですか?上で述べたように、私のクエリは 2 つのテーブルの結合です。では、どのモデルを使用する必要がありますか?たぶん、Magento は (1 つのテーブルではなく) テーブルの結合に基づいてモデルを作成する可能性がありますか?

4

1 に答える 1

1

Collection オブジェクトには、使用しているモデルが含まれています。すべてのjoining作業は、モデルにデータ (ロジックに必要なデータ) を追加するためだけに行われました。Model クラスを取得するには、単に使用します

echo get_class($room);
于 2012-10-19T09:20:50.933 に答える