2012-06-14 4 views
1

я получил следующее определение блока, который выводит блок «мой/типа» просто отлично:метод действия на блоке не делает ничего

<block type="my/type" template="my/template.phtml"> 
    <action method="setMyFlag"><value>MyValue</value></action> 
</block> 

Там только одна проблема: setMyFlag не вызывается. Я использовал этот подход раньше, чем успешно на других пользовательских блоках, но по какой-то неизвестной причине я не могу заставить его работать.

Я на самом деле полагаюсь на волшебные сеттеры, но я также добавил метод setMyFlag в My_Type и установил в нем точку останова. Все безрезультатно.

Любые подсказки относительно того, что может пойти не так здесь?

ответ

4

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

<block type="my/type" template="my/template.phtml" name="my_name"> 
    <action method="setMyFlag"><value>MyValue</value></action> 
</block> 
+0

И теперь это работает? – diNord

+0

В моем случае просто добавление имени заставило его работать, хотя вам нужно очистить кеш до перезагрузки (xml-конфигурация кэшируется). Но поскольку Magento - это ловушка с ловушкой, которая взрывается на вашем лице всякий раз, когда вы вырезаете неправильный провод, ваше перемещение может варьироваться;) –

+0

Мне нужно подождать 2 дня, прежде чем я смогу принять, но да, я буду;) –

Смежные вопросы