2016-07-12 20 views
0

Ich erstellte benutzerdefinierte URL Route wie folgt aus:Pass params in kundenspezifische URL Route

Router::connect('/subjects.details', array(
    'plugin' => 'subjects', 
    'controller' => 'subjects', 
    'action' => 'details' 
)); 

jedoch, dass Maßnahmen/Ansicht, die einen Parameter benötigt.

Also, wenn ich gehe wie localhost/foo/subjects.details/12 verknüpfen gibt es mir fehlende Controller Fehler.

Missing Controller

Error: Subjects.detailsController could not be found.

Error: Create the class Subjects.detailsController below in file: app/Controller/Subjects.detailsController.php

Wie füge ich ID-Parameter für diese URL hinzu?

+0

Sie können auch 'subject-details' anstelle von' subject.details' verwenden und den Namen des CamelCased Controllers in der Route '' controller '=>' Subjects'' verwenden. – user3082321

+0

@ user3082321 das ändert nichts – Kunok

+0

Es muss die Fehlermeldung geändert haben. Was ist die Fehlermeldung? – user3082321

Antwort

1

Sie haben auch die param in der URL und in Ihrer Aktion zu definieren:

Router::connect('/subjects.details/:id', array(
     'plugin' => 'subjects', 
     'controller' => 'subjects', 
     'action' => 'details' 
    )); 
+0

'http: // localhost/tmc/Themen/Themen/Details/1' gibt eine Seite mit Daten zurück, während' http: // localhost/tmc/subjects.details/1' die Fehlerseite zurückgibt: 'Fehler: Die angeforderte Adresse ' /tmc/subjects.details/1 'wurde auf diesem Server nicht gefunden.' – Kunok

+0

es scheint so, als ob cakephp subjects.details als Plugin/Controller interpretiert – peter

0

Laser Antwort eines anderen Fehler zurückgegeben. Es fügte im Wesentlichen neuen Schlüssel 'id' => '1' in $this->params Reihe stattdessen $this->params 's 'passed' Schlüsselreihe hinzu. Wenn Sie das ändern, funktioniert es:

Router::connect('/subjects.details/*', array(
    'plugin' => 'subjects', 
    'controller' => 'subjects', 
    'action' => 'details' 
)); 
+0

Das ist eine Parameterroute mit variabler Länge, die zu /subjects.details/12/12/1 passt/24/4/45/45/5/...... Es ist nicht die, die Sie brauchen, wenn Sie ein einzelnes Dokument abrufen möchten – peter

+0

Was würden Sie sonst vorschlagen, da ': id' nicht funktioniert? – Kunok

+0

Versuchen Sie, Ihre eigene Antwort http: // localhost/tmc/Themen/Themen/Details /: ID zu optimieren – peter