답변:
귀하의 질문에 대한 대답은 확실히 아니요, customer_logged_in
더 이상 핸들 이 없습니다 . 코드를 파고 트릭을 수행 할 수있는 레이아웃 핸들을 찾을 수 없었습니다.
그 아래 \dev\tests\static\testsuite\Magento\Test\Legacy\LayoutTest.php
에 다음 코드가 있습니다.
/**
* List of obsolete nodes
*
* @var array
*/
protected $_obsoleteNodes = [
'PRODUCT_TYPE_simple',
'PRODUCT_TYPE_configurable',
'PRODUCT_TYPE_grouped',
'PRODUCT_TYPE_bundle',
'PRODUCT_TYPE_virtual',
'PRODUCT_TYPE_downloadable',
'PRODUCT_TYPE_giftcard',
'catalog_category_default',
'catalog_category_layered',
'catalog_category_layered_nochildren',
'customer_logged_in',
'customer_logged_out',
'customer_logged_in_psc_handle',
'customer_logged_out_psc_handle',
'cms_page',
'sku_failed_products_handle',
'catalog_product_send',
'reference',
];
나에게, customer_logged_in
레이아웃 핸들이 더 이상 사용되지 않는다는 것을 분명히 알려줍니다 .
Magento 2에서 현재 수행되는 방법에 대한 설명은 Fabian의 답변을 참조하십시오.
여전히이 문제로 어려움을 겪고 있다면 customer_logged_in 및 customer_logged_out 레이아웃 핸들을 추가하여 Magento 1에서와 같이 사용할 수있는 빠른 모듈을 작성했습니다.
즐겨 !
다른 사람들이 지적 했듯이이 핸들은 이제 사라졌습니다. Magento_Customer 모듈을 보면 고객이 로그인 한 경우 등록 링크와 같은 블록이 항상 추가 되지만 렌더링되지는 않습니다 . 이제 로그인 상태에 따라 조건부로 요소를 표시하는 데 선호되는 방법 인 것 같습니다.
그러나 이것은 다른 곳에서 정의 된 이름을 기준으로 블록을 제거하는 솔루션이 아닙니다. 고객이 로그인 한 경우 layout_load_before
해당 통화에 대한 관찰자로 기능을 다시 작성할 수 $layout->addHandle('customer_logged_in')
있습니다.
이것은 매우 바보입니다. 고객은 loggin 또는 loggout뿐만 아니라 권한 만 가지고 블록 / 템플릿 / 리소스를로드해야합니다. 그러나 사용자가 이것을 볼 권한이 있는지 확인하려면 1000 줄의 코드를 작성해야합니다. 그냥 아름답다.