404 Không tìm thấy lỗi trang khi tôi cố truy cập mô-đun tùy chỉnh trong Magento 2


8

Tôi đã tạo 2 mô-đun tùy chỉnh trong thư mục nhà cung cấp. Đây là cấu trúc bố cục của tôi:

-app
  -code
    -Company
      -Blog
      -HelloWorld
        -Controller
          -Hello
            -World.php
        -registration.php
        -etc
          -module.xml
          -frontend
            -routes.xml

Cả hai đều được kích hoạt.

Đây là mã của tôi routes.xmlcho mô-đun HelloWorld:

 <?xml version="1.0"?>
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
  <router id="standard">
    <route id="helloworld" frontName="helloworld">
        <module name="Company_HelloWorld"/>
    </route>
 </router>
</config>

Đây là mã của tôi trong module.xml:

 <?xml version="1.0"?>
   <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Company_HelloWorld" setup_version="1.0.0">
   </module>
   </config>

Đây là tập tin đăng ký của tôi:

<?php 
   \Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Company_HelloWorld',
    __DIR__
);

Đây là mã điều khiển của tôi:

 <?php
 namespace Company\HelloWorld\Controller\Hello;


 class World extends \Magento\Framework\App\Action\Action
 {
   public function __construct(
    \Magento\Framework\App\Action\Context $context)
  {
      return parent::__construct($context);
  }

  public function execute()
  {
    echo 'Hello World';
    exit;
  } 
} 

Đây là mã bố cục của tôi:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>

</body>
</page>

& Tương tự cho một mô-đun khác. Tôi đã thực thi setup:upgradelệnh nhưng vẫn nhận được lỗi 404 khi tôi cố truy cập bất kỳ mô-đun nào.


bạn có thể hiển thị tập tin bố cục và cấu trúc thư mục cây của mô-đun của mình không
Bilal Usean

Tôi đã cập nhật câu hỏi của mình. Hiện tại tôi đã đưa ra lối thoát; Tôi đoán trong phương thức exec () của trình điều khiển nhưng nó thậm chí không xuất hiện trong trình điều khiển.
dùng2431224

Trong magento2 Bạn có thể tạo mô-đun app/codeThư mục bên trong
MaYaNk

Tôi đã tạo bên trong ứng dụng / mã chỉ.
dùng2431224

tôi hoàn toàn không thể hiểu cấu trúc bố trí của bạn.
MaYaNk

Câu trả lời:


5

Thử cái này module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Company_HelloWorld" setup_version="1.0.0" active="true">


vẫn cùng một lỗi.
dùng2431224

Tôi đã chỉnh sửa câu trả lời của mình
MaYaNk

hãy thử đổi setup_version="1.0.0" thành setup_version="2.0.1"
MaYaNk


1

bạn chưa tạo bất kỳ trình điều khiển nào nên nó sẽ không tìm thấy bất kỳ url nào vì vậy nó sẽ cung cấp cho bạn lỗi 404

Tạo thư mục điều khiển

Tạo thư mục Index trong thư mục Bộ điều khiển

Tạo tệp Index.php trong thư mục Index thêm mã bên dưới.

<?php

namespace  Company\HelloWorld\Controller\Index;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\App\Action\Context;
class Index extends \Magento\Framework\App\Action\Action
{
    protected $resultPageFactory;
     public function __construct(
        Context $context,
        PageFactory $resultPageFactory
    ) {
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }
    /**
     * Index action
     *
     * @return $this
     */
    public function execute()
    {
        echo "helloworld";exit;
    }   



}

Bây giờ bạn có thể kiểm tra url helloworld/index/index


Tất nhiên, tôi đã tạo bộ điều khiển. Tôi chỉ không dán mã đó vào câu hỏi
user2431224

Tôi đã thêm mã điều khiển trong câu hỏi của tôi.
dùng2431224

Bạn đang thử url nào?
Prashant Valanda

Bây giờ nói đến phương thức exec () của trình điều khiển nhưng chỉ hiển thị trang trống. localhost / magento-demo / helloworld / hello / world
user2431224

Nó hoạt động sau khi tôi thực hiện lệnh xóa bộ đệm.
dùng2431224

0

Bạn cần thay đổi mã trong 2 tệp,

ứng dụng / mã / Công ty / HelloWorld / etc / frontend / Rout.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
  <router id="standard">
    <route id="company_helloworld" frontName="helloworld">
        <module name="Company_HelloWorld"/>
    </route>
 </router>
</config>

ứng dụng / mã / Công ty / HelloWorld / etc / module.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Company_HelloWorld" setup_version="2.1.1">
   </module>
   </config>

Tôi vừa thực hiện hai thay đổi này khi chạy php bin / magento setup: nâng cấp và nó hoạt động tốt.

localhost / magento-demo / index.php / helloworld / hello / world /

nhập mô tả hình ảnh ở đây


0

Tôi đã thực thi bin \ magento cache: flush & Nó hoạt động rõ ràng. Đây là một vấn đề về bộ đệm.


0

Chỉ cần cố gắng triển khai nội dung và nâng cấp thiết lập

Thiết lập php bin / magento: nâng cấp

Thiết lập php bin / magento: static-content: triển khai

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.