Ich habe nur für kurze Zeit mit Slim gearbeitet. Ich bin immer noch auf Version 2. Bis jetzt lief alles gut, aber ich habe einen kleinen Haken gefunden. Ich habe eine Seite, die Inhalt basierend auf einer GET-Variable am Ende der URL anzeigt. Die URL sieht wie folgt aus ...In Slim, wie übergebe ich eine GET-Variable zum Rendern
http://localhost/trailcache.com/checklist/21
Die erste Zeile der Route planen wie folgt aussieht ...
$app->get('/checklist/:Id', function($Id) use($app) {
Es endet wie dieser ...
})->name('checklist');
Dieser Id-Parameter steuert, welche Informationen ich in die Seite hineinziehe und alles ist gut gelaufen, aber jetzt habe ich ein Kontaktformular und damit eine Validierung hinzugefügt. Ich schreibe in die Datenbank und rende den neuen Inhalt in Ordnung. Das Problem tritt auf, wenn ich versuche, Fehler auf die Seite zu senden. Momentan sieht es so aus ...
$app->render('user/checklist.php', [
'Id' => $Id,
'errors' => $v->errors(),
'request' => $request
])->name('checklist');
Dies funktioniert nicht. Die Seite ist leer. Die URL kehrt ist ...
http://localhost/trailcache.com/checklist
Die Dokumentation zeigt machen ...
$app->get('/books/:id', function ($id) use ($app) {
$app->render('myTemplate.php', array('id' => $id));
});
Wäre das nicht, dass die Arbeit in der Zeit nach Route die gleiche Art und Weise? Es hat auf all meinen anderen Seiten.
Wie kann es diese Fehler zusammen mit der richtigen GET-Variable übergeben, so dass der richtige Inhalt angezeigt wird?
Können Sie die Implementierung erklären? – user2530671
Ich glaube, dein Problem liegt im Rendering-Teil, du renderst die Ansicht nicht richtig. Mit dem Aufruf von 'renderer-> render 'denke ich, dass es der Weg ist, es zu tun. Es tut mir leid, ich kann nicht wirklich erklären warum, aber es funktioniert für mich. Und in der Ansicht mache ich nur ein 'if (isset ($ id)' und es funktioniert. Noch einmal, es tut mir leid, ich weiß nicht, wie ich es erklären soll, ich bin neu, um mich selbst schlank zu machen –