回答:
ブロックはいつでも参照できますname
。エイリアス(as
)は、ブロックの長い名前を簡略化するために使用され、スコープによってのみ異なります。Name
ページalias
内および親ブロック内で一意である必要があります。
getBlockHtml()
でブロックをレンダリングするために使用されることがあるメソッドがあります。
asを使用すると、phtmlテンプレートで$ this-> getChildHtml( "as_value")を呼び出すことができます。
名前は一意である必要があり、そしてのために使用することができます。<参照>ブロック、<削除>、など
例(catalog.xml):
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
</block>
catalog / product / view.phtmlを開くと、以下が表示されます。
<div class="product-img-box">
<?php echo $this->getChildHtml('media') ?>
</div>
分かりますか?as = "media"、そして$ this-> getChildHtml( 'media')...
誰もunsetChild
まだ特定の質問に答えていません。ブロックの子に関連するメソッドは、常にエイリアスによって子ブロックを参照します。エイリアスは親のみに知られ、名前とは異なり、グローバルに一意ではありません。
ただし、エイリアスを定義せずにブロックが作成された場合、エイリアスはデフォルトで名前になります。
つまり、子ブロックに明示的なエイリアスがある場合、要するにエイリアスを使用する必要があります。そうでない場合は、名前を使用します。
エイリアスはas="..."
、ブロックがXMLを介して子ブロックとして作成された場合append()
、insert()
または、またはなどのメソッドで移動または動的に追加された場合のアクションパラメーターによって指定されますsetChild()
。