0
$id = 'unique_id_block';
    $cmsBlockModel = Mage::getResourceModel('cms/block');
    $block = Mage::getModel('cms/block');

    $cmsBlockModel->load($block, $id);

上記のコードを使用して、unique_id_blockというIDのブロックオブジェクトを返します。

同じIDでストアビューが異なる複数のブロックがある可能性があるため、これでブロックの配列を返すことができるのはなぜですか。

4

1 に答える 1

1

コレクションを使用して、同じ識別子を持つすべてのブロックを取得できます。

$id = 'unique_id_block';
$blockCollection = Mage::getModel('cms/block')->getCollection()
    ->addFieldToFilter('identifier', $id);

次に、配列を実行するのと同じように、このコレクションを反復処理できます。

foreach ($blockCollection as $block) {
  //...
}

ただし、質問ではこれらを配列として使用するように求められているため、次のように、コレクションを配列に変換してそのアイテムを取得することもできます。

$id = 'unique_id_block';
$blockCollection = Mage::getModel('cms/block')->getCollection()
    ->addFieldToFilter('identifier', $id)
    ->toArray();

$blocks = $blockCollection['items'];

しかし、これに正当な理由がない限り、私は最初の例に固執します。

于 2012-07-26T10:30:09.957 に答える