404 Halaman tidak ditemukan kesalahan ketika saya mencoba mengakses modul Kustom di Magento 2

8

Saya telah membuat 2 modul khusus di dalam folder vendor. Ini adalah struktur tata letak saya:

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

Keduanya diaktifkan.

Ini adalah kode saya routes.xmluntuk modul 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>

Ini adalah kode saya di 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>

Ini adalah file registration.php saya:

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

Ini adalah kode pengontrol saya:

 <?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;
  } 
} 

Ini adalah kode tata letak saya:

<?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>

& Sama untuk modul lain. Saya sudah menjalankan setup:upgradeperintah tetapi masih, saya mendapatkan error 404 ketika saya mencoba mengakses modul-modul ini.

pengguna2431224
sumber
dapatkah Anda menunjukkan file layout dan struktur folder pohon modul Anda
Bilal Usean
Saya telah memperbarui pertanyaan saya. Saat ini saya telah memberikan jalan keluar; dalam mengeksekusi () metode controller tetapi bahkan tidak datang dalam controller kurasa.
user2431224
Di magento2 Anda dapat membuat modul Di dalam app/codefolder
MaYaNk
Saya telah membuat di dalam aplikasi / kode saja.
user2431224
saya tidak bisa memahami struktur tata letak Anda dengan sempurna.
MaYaNk

Jawaban:

5

Coba ini 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">

MaYaNk
sumber
masih kesalahan yang sama.
user2431224
Saya mengedit jawaban saya
MaYaNk
coba ubah setup_version="1.0.0" ke setup_version="2.0.1"
MaYaNk
1

Anda belum membuat pengontrol apa pun sehingga tidak akan menemukan url sehingga itu akan memberi Anda 404 kesalahan

Buat folder Controller

Buat folder Indeks di dalam folder Controller

Buat file Index.php di dalam folder Indeks tambahkan kode di bawah ini di dalamnya.

<?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;
    }   



}

Sekarang Anda dapat memeriksa url helloworld/index/index

Valash Prashant
sumber
Ofcourse Saya telah membuat controller. Saya hanya tidak menempelkan kode yang dimaksud
user2431224
Saya telah menambahkan kode pengontrol dalam pertanyaan saya.
user2431224
Url mana yang Anda coba?
Prashant Valanda
Sekarang saatnya untuk mengeksekusi () metode controller tetapi hanya menampilkan halaman kosong. localhost / magento-demo / helloworld / hello / world
user2431224
Ini berhasil setelah saya menjalankan perintah cache flush.
user2431224
0

Anda perlu mengubah kode dalam 2 file,

app / code / Company / HelloWorld / etc / frontend / routes.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>

app / code / Company / 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>

Saya baru saja membuat dua perubahan ini menjalankan setup php bin / magento: upgrade dan berfungsi dengan baik.

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

masukkan deskripsi gambar di sini

Rushvi
sumber
0

Saya mengeksekusi cache bin \ magento: flush & Ini ternyata berfungsi. Itu masalah cache.

pengguna2431224
sumber
0

Cobalah untuk Menyebarkan konten dan meningkatkan pengaturan

setup php bin / magento: tingkatkan

setup php bin / magento: static-content: deploy

amith lal
sumber