2017-07-25 3 views
0

Ich versuche, eine GET-Variable zugreifen, die in config/routes.php definiert ist, mit dem Namen des Platzhalters in der Route. Im folgenden Beispiel versuche ich, :school_id = $id in der Steuerung zu setzen.CakePHP 3.x Übergeben Route GET Parameter Name zu Controller

Routen Code config/routes.php:

Router::connect('/schools/:school_id/students', [ 
    'controller' => 'Schools', 
    'action'=> 'index' 
]); 

Controller-Code src/Controller/SchoolsController.php:

public function index(){ 
     $id = $this->request->params['pass']['school_id']; 
}; 

In diesem Fall $this->request->params['pass']['school_id']; nicht gesetzt ist. Der Wert :school_id wird angezeigt, wenn ich stattdessen $this->request->params['pass'][0]; schreibe.

Gibt es eine Möglichkeit, auf den URL-Wert zuzugreifen, der an der Stelle :school_id sein soll, indem er seinen Namen statt 0 verwendet? Mit anderen Worten, kann ich es mit dem benannten Schlüssel referenzieren, den ich in der Datei routes.php definiert habe?

Antwort

0

Sie können die Parameter mit dieser Syntax abrufen.

$this->request->getParam(); 
+0

Ich habe versucht, '$ this-> request-> param ('school_id')' und es gibt nichts zurück. Wenn ich 'getParam()' versuche, heißt es, dass die Methode nicht existiert. Ich bin auf Kuchen Version 3.3.15. – cwarne

Verwandte Themen