Ich habe festgestellt, dass ich beim Versuch, die unsetChild
Methode zu verwenden, manchmal das Attribut 'name' und andere 'as' verwenden muss. Wenn ein Block normal hinzugefügt wird, verwenden Sie anscheinend 'as'. Wenn er jedoch mithilfe der append
Methode zu einem Block hinzugefügt wird, müssen Sie möglicherweise 'name' verwenden. Ist diese Annahme richtig?
Was ist der Grund dafür und gibt es eine Standardmethode, um zu verstehen, welches Attribut Sie verwenden sollten?
getBlockHtml()
die manchmal zum Rendern von Blöcken anhand ihres Namens verwendet wird.Wenn Sie as verwenden , können Sie $ this-> getChildHtml ("as_value") in der phtml-Vorlage aufrufen.
Der Name muss eindeutig sein und kann für <reference> -Blöcke, <remove> usw. verwendet werden.
Zum Beispiel (catalog.xml):
Wenn Sie die Datei catalog / product / view.phtml öffnen, wird Folgendes angezeigt:
Siehst du? as = "media" und dann $ this-> getChildHtml ('media') ...
quelle
Niemand hat die bestimmte Frage ungefähr
unsetChild
noch beantwortet . Methoden im Zusammenhang Kinder eines Blocks immer beziehen sich auf das Kind Blöcke von Alias, die nur an die Mutter bekannt ist und im Gegensatz zu den Namen, die nicht weltweit einzigartig.Wenn der Block jedoch ohne Definition eines Alias erstellt wurde, wird standardmäßig der Name verwendet.
Kurz gesagt, wenn der untergeordnete Block einen expliziten Alias hat, müssen Sie den Alias verwenden. Wenn nicht, benutze den Namen.
Aliase werden angegeben,
as="..."
wenn der Block als untergeordneter Block über XML erstellt wurde, oder als Aktionsparameter, wenn sie mit Methoden wieappend()
,insert()
oder verschoben oder dynamisch hinzugefügt wurdensetChild()
.quelle