2016-04-06 7 views
0

Ich folge dem Modules, Routes and Controllers Tutorial. Ich habe jedoch "Seite nicht gefunden" erhalten, unabhängig von "Cache löschen".Warum wird mein Drupal 8 Modul Seite nicht gefunden?

dino_roar.info.yml Datei:

name: Dino ROAR 
type: module 
description: "ROAR at you" 
package: Custom 
core: 8.x 

dino_roar.routing.yml

dino_says: 
    path: /the/dino/says/ 
    defaults: 
    _controller: Drupal\dino_roar\Controller\RoarController::roar 
    requirements: 
    _permission: 'access content' 

und src/Controller/RoarController.php Datei:

<?php 

namespace Drupal\dino_roar\Controller; 
use Symfony\Component\HttpFoundation\Response; 

class RoarController 
{ 
    public function roar(){ 
     return new Response('ROOOOAR'); 
    } 
} 

Beim Zugriff durch : http://drupal-8.dd:8083/the/dino/says/ Ich bekomme die Seite nicht gefunden Fehler. Jeder Vorschlag wird sehr geschätzt.

Unten ist meine Ordnerstruktur: enter image description here

Und das ist, wie es aussieht, wenn ich den Ordner src brach zusammen. enter image description here

Antwort

0

Haben Sie etwas Hilfe von Shashwat Purav bei Drupal.org. Unten ist die Routing-Datei, die ich geändert habe, funktioniert.

dino_roar.dino_says: 
    path: /dino/says 
    defaults: 
     _controller: '\Drupal\dino_roar\Controller\RoarController::roar' 
    requirements: 
     _permission: 'access content' 
+0

Es sieht so aus, als müsste ich den Rückwärtsslash vor dem "Drupal" in meinem Controller hinzufügen. Was merkwürdig ist, ist, dass ich ein anderes "Hallo Welt" Testmodul habe, dass ich nicht den umgekehrten Schrägstrich vor das Wort Drupal setze und es auf diesem einen funktioniert. – Charlie123

0

Die Hauptmodul Info yml Datei hat nach folgendem Schema benannt werden:

module_name.info.yml 

So ist es dino_roar.info.yml für Ihr Modul ist. Außerdem müssen Sie Ihr Modul aktivieren, aber soweit ich weiß, wenn die korrekte benannte Info-XML-Datei nicht vorhanden ist, weiß Drupal nicht einmal über Ihr Modul.

Auch stellen Sie sicher, dass Ihre Ordnerstruktur korrekt ist:

dino_roar 
    --> src 
    --> Controller 
      RoarController.php 
    dino_roar.info.yml 
    dino_roar.routing.yml 
+0

Ich mache nur die Änderungen, löschen Sie den gesamten Cache, und es funktioniert immer noch nicht. Ist es möglich, mein Modul zu installieren? Wenn ja, habe ich das Modul installiert. Drupal 8 konnte das Modul sehen. – Charlie123

+0

Hmm, ich sehe nichts falsches ... hast du deine Modul Ordnerstruktur überprüft? –

+0

Ich habe gerade meine Modul-Ordnerstruktur zu meinem ursprünglichen Beitrag hinzugefügt. Ich sehe keine Abnormalität. – Charlie123

0

Ich denke, es wegen Ihrer ursprünglichen Routing-Problem, Sie sollte sich ändern "Pfad:/das/dino/sagt /" auf "Pfad:/das/dino/sagt"

nach Entfernen der letzte Schrägstrich, sollte in Ordnung sein.

+0

Ich habe versucht, den Schrägstrich nach dem "sagt" zu entfernen, aber das war es nicht. – Charlie123

+0

haben Sie den Cache bereinigt? Nachdem Sie etwas in der .yml-Datei geändert haben, sollten Sie zuerst Ihren Cache reinigen. Ich habe meinen Test auf meinem Computer gemacht, sobald ich diesen Schrägstrich entfernt habe, funktioniert es richtig, sonst werde ich das gleiche Problem wie zuvor haben –