차이점은 무엇이며 <action method=”unsetChild”>
그리고 <remove name=""/>
?
두 기능 모두 레이아웃에서 블록을 제거하는 데 사용됩니다.
누군가가 예를 들어 설명 할 수 있습니까?
차이점은 무엇이며 <action method=”unsetChild”>
그리고 <remove name=""/>
?
두 기능 모두 레이아웃에서 블록을 제거하는 데 사용됩니다.
누군가가 예를 들어 설명 할 수 있습니까?
답변:
<remove name="" />
의 글로벌 블록 범위에서 작동합니다 Mage_Core_Model_Layout
. 여기에 수집 Mage_Core_Model_Layout::generateXml()
과 에서 지정된 이름을 가진 블록을 방지하기 위해 사용 도 인스턴스화 . 또한, 선언 하위 블록 <remove />
에드 블록은 것 또한 인스턴스화 할 수 없습니다 .
<action method="" />
aka Mage_Core_Block_Abstract::unsetChild()
는 조치가 호출되는 상위 블록 인스턴스에서 표시된 하위 블록 ( 이름이 아닌 별명 으로)을 나열 해제하는 블록 레벨 메소드입니다 . 블록 인스턴스가 여전히 생성 되더라도 렌더링 된 출력에서 블록이 사라지는 경우가 가장 많습니다. 또는 메소드 와 함께 사용하여 "이동"을 수행하는 데 사용됩니다.::append()
::insert()
alias
하위에 대한가로 설정됩니다 name
. 👍
<remove name="" />
, 모든 레이아웃이 완료되면 Magento는 추가 된 레이아웃 핸들에 관계없이 name = ""으로 표시된 블록을 완전히 삭제합니다. 이 방법을 사용하면 한 위치에서 블록을 제거한 다음 다른 위치에 추가 할 수 없습니다
<action method="unsetChild">
사용중인 컨텍스트에서만 작동합니다. unsetChild는 기존 블록을 한 곳에서 다른 곳으로 이동하기 위해 만들어집니다. 특정 레이아웃 핸들에서 특정 블록을 제거한 다음 다른 위치 또는 레이아웃 핸들에 삽입하려면이 방법을 사용해야합니다.