404 Seite nicht gefunden Fehler, wenn ich versuche, auf das benutzerdefinierte Modul in Magento 2 zuzugreifen

8

Ich habe 2 benutzerdefinierte Module im Herstellerordner erstellt. Dies ist meine Layoutstruktur:

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

Beide sind aktiviert.

Dies ist mein Code routes.xmlfür das HelloWorld-Modul:

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

Dies ist mein Code in 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>

Dies ist meine Registrierung.php-Datei:

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

Dies ist mein Controller-Code:

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

Das ist mein Layoutcode:

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

& Gleiches gilt für ein anderes Modul. Ich habe den setup:upgradeBefehl bereits ausgeführt, erhalte jedoch immer noch den Fehler 404, wenn ich versuche, auf eines dieser Module zuzugreifen.

user2431224
quelle
Können
Ich habe meine Frage aktualisiert. Derzeit habe ich exit gegeben; in execute () Methode des Controllers, aber es kommt nicht einmal in Controller, denke ich.
user2431224
In magento2 können Sie Modul Innerhalb app/codeOrdner erstellen
MaYaNk
Ich habe nur innerhalb der App / des Codes erstellt.
user2431224
Ich kann Ihre Layoutstruktur nicht perfekt verstehen.
MaYaNk

Antworten:

5

Versuche dies 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
quelle
immer noch der gleiche Fehler.
user2431224
Ich habe meine Antwort bearbeitet
MaYaNk
versuchen , sich ändern setup_version="1.0.0" zu setup_version="2.0.1"
MAYANK
1

Sie haben keinen Controller erstellt, sodass keine URL gefunden wird und Sie einen 404-Fehler erhalten

Controller- Ordner erstellen

Erstellen Sie Index - Ordner im Controller - Ordner

Erstellen Sie die Datei Index.php im Ordner Index und fügen Sie den folgenden Code hinzu.

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



}

Jetzt können Sie die URL überprüfen helloworld/index/index

Prashant Valanda
quelle
Natürlich habe ich einen Controller erstellt. Ich habe den fraglichen Code einfach nicht
eingefügt
Ich habe in meiner Frage Controller-Code hinzugefügt.
user2431224
Welche URL versuchst du?
Prashant Valanda
Jetzt kommt es zur execute () -Methode des Controllers, zeigt aber nur eine leere Seite an. localhost / magento-demo / helloworld / hallo / world
user2431224
Es hat funktioniert, nachdem ich den Cache-Flush-Befehl ausgeführt habe.
user2431224
0

Sie müssen den Code in 2 Dateien ändern.

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

Ich habe gerade diese zwei Änderungen vorgenommen, um PHP Bin / Magento Setup auszuführen: Upgrade und es funktioniert gut.

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

Geben Sie hier die Bildbeschreibung ein

Rushvi
quelle
0

Ich habe bin \ magento Cache ausgeführt: Flush & Es hat anscheinend funktioniert. Es war ein Cache-Problem.

user2431224
quelle
0

Versuchen Sie einfach, den Inhalt bereitzustellen und das Setup zu aktualisieren

PHP Bin / Magento Setup: Upgrade

PHP Bin / Magento Setup: Statischer Inhalt: Bereitstellen

amith lal
quelle