, wenn Sie diese nicht verwendet haben, bevor der Link lautet: http://altorouter.com/Altorouter kann nicht herausfinden, wie man richtig Route PHP
ich eine kleine Anwendung, mache aber benötigen keinen Rahmen, nur Routing. Also habe ich beschlossen, einen Altoerouter auszuprobieren, da es ziemlich einfach zu sein scheint.
Ich möchte bestimmte Routen zuordnen, um bestimmte Dinge zu tun. zum Beispiel:
www.example.com/products/
sollte dies meine products.php Vorlage und ziehen Daten aus der Datenbank füllen Sie die Felder zeigen. Ich habe diese Arbeit mit dem folgenden bekam:
$router->map('GET', '/products', function() {
require('partials/connectdb.php'); //Require Database Connection
$pageContent = getProductsContent($conn); //prepare all the page content from database
require __DIR__ . '/products.php'; //require the template to use
});
Das gleiche gilt für alle anderen Standardseiten, mein Problem ist, wenn die Route ändern können. Zum Beispiel:
www.example.com/shoes/
www.example.com/shorts/
www.example.com/shirts/
www.example.com/ties/
Wenn ein Benutzer zu diesen Routen geht, möchte ich die Parameter 'Schuhe' erhalten und dann, während ich noch die Vorlage products.php verwende, die Logik nur für Schuhe machen.
So bei der Dokumentation suchen sie sagt, Sie tun können:
www.example.com/[*] // was alles bedeutet.
Aber nach dem Hinzufügen dieser in meine gelisteten Routen, macht es alles andere ungültig, den der Benutzer versucht zu besuchen. Also, wenn sie unter:
www.example.com/products // Wie es vor
gearbeitet Es tut eigentlich die Logik im Inneren:
www.example.com/[*]
Kennt jemand altorouter und kann mir bitte weiterhelfen? Ich werde meine ganze Seite Code unten ein:
// Site Router
$router->map('GET', '/', function() {
require('partials/connectdb.php'); //Require Database Connection
$pageContent = getHomeContent($conn);
require __DIR__ . '/home.php';
});
$router->map('GET', '/products', function() {
require('partials/connectdb.php'); //Require Database Connection
$pageContent = getProductsContent($conn);
require __DIR__ . '/products.php';
});
$router->map('GET', '/[*]', function($id) {
require('partials/connectdb.php'); //Require Database Connection
$test = 'this was a test';
$pageContent = getProductsContent($conn);
require __DIR__ . '/products.php';
});
// match current request url
$match = $router->match();
// call closure or throw 404 status
if($match && is_callable($match['target'])) {
call_user_func_array($match['target'], $match['params']);
} else {
// no route was matched
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}
Dies funktioniert nicht, ich bekomme nur eine leere Seite –
Was ist der Fehler? – iamkdev
kein Fehler, nur leere Seite, wenn Sie auf altorouter Website aussehen: Typ ist nicht eine Sache, die verwendet werden kann, denke ich –