Error de página 404 no encontrada cuando intento acceder al módulo personalizado en Magento 2

8

He creado 2 módulos personalizados dentro de la carpeta del proveedor. Esta es mi estructura de diseño:

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

Ambos están habilitados.

Este es mi código para el routes.xmlmódulo 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>

Este es mi código en 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>

Este es mi archivo registro.php:

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

Este es mi código de controlador:

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

Este es mi código de diseño:

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

& Lo mismo para otro módulo. Ya ejecuté el setup:upgradecomando pero aún así, recibo un error 404 cuando intento acceder a cualquiera de estos módulos.

usuario2431224
fuente
puede mostrar su archivo de diseño y estructura de carpetas del árbol de su módulo
Bilal Usean
He actualizado mi pregunta. Actualmente he dado salida; en el método execute () del controlador, pero ni siquiera viene en el controlador, supongo.
user2431224
En magento2 puede crear la app/codecarpeta Inside del módulo
MaYaNk
He creado solo dentro de la aplicación / código.
user2431224
No puedo entender perfectamente su estructura de diseño.
MaYaNk

Respuestas:

5

Prueba esto 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
fuente
Sigue siendo el mismo error.
user2431224
Edité mi respuesta
MaYaNk
intenta cambiar setup_version="1.0.0" a setup_version="2.0.1"
MaYaNk
1

no ha creado ningún controlador, por lo que no encontrará ninguna URL, por lo que le dará un error 404

Crear carpeta de controlador

Crear carpeta de índice dentro de la carpeta del controlador

Cree el archivo Index.php dentro de la carpeta Index agregue el siguiente código en él.

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



}

Ahora puedes consultar url helloworld/index/index

Prashant Valanda
fuente
Por supuesto, he creado el controlador. Simplemente no
pegué
He agregado el código del controlador en mi pregunta.
user2431224
¿Qué url estás intentando?
Prashant Valanda
Ahora se trata del método execute () del controlador, pero solo muestra una página en blanco. localhost / magento-demo / helloworld / hello / world
user2431224
Funcionó después de ejecutar el comando cache flush.
user2431224
0

Necesita cambiar el código en 2 archivos,

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>

Acabo de hacer que estos dos cambios ejecuten php bin / magento setup: actualización y funciona bien.

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

ingrese la descripción de la imagen aquí

Rushvi
fuente
0

Ejecuté bin \ magento cache: flush & Al parecer funcionó. Fue un problema de caché.

usuario2431224
fuente
0

Solo intente implementar el contenido y actualizar la configuración

Configuración de php bin / magento: actualización

php bin / magento setup: static-content: deploy

amith lal
fuente