Когда использовать «имя», а когда использовать 'как'

magento.stackexchange https://magento.stackexchange.com/questions/781

Вопрос

Я обнаружил, что при попытке использовать unsetChild Метод, иногда мне приходится использовать атрибут «Имя» и других как ». Кажется, что если блок добавляется нормально, вы используете «как», но если он добавлен в блок, используя append Метод, вам, возможно, придется использовать «имя». Это предположение правильно?

Что стоит за этим, и есть ли стандартный способ понять, какой атрибут вы должны использовать?

Это было полезно?

Решение

Блок всегда можно ссылаться name. Анкет Псевдоним (as) используется для упрощения длинного имени блока, и единственное, что отличается от области. Name должен быть уникальным в рамках страницы и alias в родительском блоке.

Другие советы

Когда вы используете в качестве, вы можете позвонить $ this-> getChildhtml ("as_value") на шаблоне PHTML.

А имя должен быть уникальным и может быть использован для <Ссылка> блоки, <Удалить>, так далее.

Например (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>

Если вы откроете каталог/продукт/view.phtml, вы увидите:

<div class="product-img-box">
    <?php echo $this->getChildHtml('media') ?>
</div>

Понимаете? как = "Media", а затем $ this-> getChildhtml ('Media') ...

Никто не ответил на конкретный вопрос о unsetChild пока что. Методы, связанные с дети блока всегда Обратитесь к детским блокам под псевдонимом, который известен только родителям и в отличие от названия, не уникально.

Но если блок был создан без определения псевдонима, псевдоним по умолчанию по имени.

Короче говоря, если у ребенка есть явный псевдоним, вы должны использовать псевдоним. Если нет, используйте имя.

Псевдонимы даны as="..." Если блок был создан в виде детского блока через XML или по параметру действия, если они были перемещены или динамически добавлены с помощью таких методов, как append(), insert() или же setChild().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top