Magento 2에서 고객 계정 탐색에 사용자 정의 활성 링크 추가


10

고객 계정 탐색에 사용자 정의 링크를 추가하려고합니다. 내 맞춤 링크가 계정 탐색에 표시되고 작동하지만 클릭시 활성 / 현재로 표시되지 않습니다.

여기에 이미지 설명을 입력하십시오

아래는 내가 가진 코드입니다.

/app/code/Namespace/Support/view/frontend/layout/customer_account.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="customer_account_navigation">
            <block class="Magento\Framework\View\Element\Html\Link\Current" name="customer-account-navigation-suppport-ticket-link" after="-">
                <arguments>
                    <argument name="path" xsi:type="string">support/customer/index</argument>
                    <argument name="label" xsi:type="string">Support Ticket</argument>
                </arguments>
            </block>
        </referenceBlock>
    </body>
</page>

/app/code/Namespace/Support/Controller/Customer/Index.php

<?php
namespace Namespace\Support\Controller\Customer;

use Magento\Framework\App\Action;
use Magento\Framework\Exception\NotFoundException;
use Magento\Framework\Controller\ResultFactory;

class Index extends \Namespace\Support\Controller\Index
{
    /**
     * Show customer tickets
     *
     * @return \Magento\Framework\View\Result\Page
     * @throws NotFoundException
     */
    public function execute()
    {
        /** @var \Magento\Framework\View\Result\Page resultPage */
        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
        return $resultPage;
    }
}

/app/code/Namespace/Support/view/frontend/layout/support_customer_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="customer_account"/>
    <head>
        <title>Support Ticket</title>
        <css src="Namespace_Support::css/styles.css"/>
    </head>
    <body>
        <referenceContainer name="content">
            <block class="Namespace\Support\Block\TicketList" name="ticketViewList" template="Namespace_Support::list.phtml" />
        </referenceContainer>
    </body>
</page>

6
경로를 다음 <argument name="path" xsi:type="string">support/customer/index</argument> 으로 변경 <argument name="path" xsi:type="string">support/customer</argument>
Codrain Technolabs Pvt Ltd

도움이된다면 알려주세요
Codrain Technolabs Pvt 주식 회사에게

@YagneshPonkiya. 빠른 답변 감사합니다. 예, 작동합니다. 귀하의 의견을 답변으로 작성하여 수락하십시오.
Shyam

@YagneshPonkiya. 또한 문제가 무엇인지 말씀해 주시겠습니까? 왜 우리는 그것을 바꿔야 했습니까? 미리 감사드립니다.
Shyam

@Shyam,이 모듈을 완료 했습니까? 내 M2 프로젝트에서 동일한 기능을 만들고 있습니다. 이 기능을 어떻게 만들 수 있는지 안내해 주시겠습니까? 감사합니다
mageDev0688

답변:


23

작업을 완료하려면 아래와 같이 레이아웃 파일의 경로를 변경하십시오.

<argument name="path" xsi:type="string">support/customer</argument>

경로 문자열에서 작업 부분을 제거했습니다.

자세한 내용은 왜해야하는지 아래 파일을 참고하십시오.

마 젠토 \ 프레임 워크 \보기 \ 요소 \ Html \ 링크 \ Current.php

희망이 도움이 될 것입니다.


Index 대신 다른 작업 이름이있는 경우 호출되지 않습니다 ....
Manish

"인덱스"이외의 다른 작업이있는 경우 "support / customer / abc"와 같은 전체 경로를 사용해야합니다. 또한 이름과 경로 ID가 동일한 지 확인하십시오.
Codrain Technolabs Pvt Ltd

@YagneshPonkiya, 나는 지금 같은 문제에 직면 하고 있으며 위의 코드로 시도했지만 여기 에 404 페이지 문제가 발생합니다.
mageDev0688

@Yagnesh 고객 / 계정 / 페이지에 있으면 메뉴에 "현재"클래스가 있습니다. 그러나 고객 / 계정 / 편집 페이지에있는 경우 "현재"클래스가 없습니다. 도울 수 있니? 내부 페이지의 메뉴에 "현재"클래스를 갖고 싶습니다.
Sejal Shah

@YagneshPonkiya cms 페이지는 어떻습니까?
Nitesh

2

당신은 사용자 정의 레이아웃으로 쓸 수 있습니다

<referenceBlock name="customer-account-navigation-suppport-ticket-link">
                <arguments>
                    <argument name="current" xsi:type="boolean">true</argument>
                </arguments>
    </referenceBlock>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.