เพิ่มลิงก์ที่ใช้งานแบบกำหนดเองไปยังการนำทางบัญชีลูกค้าใน 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 Ltd

@YagneshPonkiya ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ใช่มันใช้งานได้ ใส่ความคิดเห็นของคุณเป็นคำตอบเพื่อที่ฉันจะได้ยอมรับ
Shyam

@YagneshPonkiya นอกจากนี้คุณสามารถบอกฉันทีว่าปัญหาคืออะไร ทำไมเราต้องเปลี่ยนสิ่งนั้น ขอบคุณล่วงหน้า.
Shyam

@Shyam คุณได้ทำโมดูลนี้เสร็จหรือยัง ฉันกำลังสร้างฟังก์ชันการทำงานเดียวกันในโครงการ M2 ของฉัน ดังนั้นคุณช่วยแนะนำฉันว่าฉันจะสร้างฟังก์ชันนี้ได้อย่างไร ขอบคุณ
mageDev0688

คำตอบ:


23

หากต้องการดำเนินการให้เสร็จสิ้นโปรดเปลี่ยนเส้นทางในไฟล์เลย์เอาต์ของคุณด้านล่าง

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

โปรดทราบว่าฉันได้ลบส่วนการกระทำออกจากสตริงเส้นทาง

สำหรับข้อมูลเพิ่มเติมทำไมคุณต้องทำเช่นนี้โปรดศึกษาไฟล์ด้านล่าง

วีโอไอพี \ Framework \ ดู \ ธาตุ \ Html \ ลิงค์ \ Current.php

หวังว่านี่จะช่วยคุณได้


ถ้าฉันมีชื่อการกระทำอื่นแทนที่จะเป็นดัชนีก็ไม่ได้เรียกว่า ....
Manish

หากคุณมีการดำเนินการอื่นนอกเหนือจาก "ดัชนี" คุณควรใช้เส้นทางแบบเต็มเช่น "การสนับสนุน / ลูกค้า / abc" ตรวจสอบให้แน่ใจว่าชื่อและรหัสเส้นทางของคุณเหมือนกัน
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.