Sto tentando di utilizzare un router (AltoRouter) per la prima volta e non riesco a chiamare nessuna pagina.Instradamento tramite Php AltoRouter
struttura delle cartelle Web
Index.php
require 'lib/AltoRouter.php';
$router = new AltoRouter();
$router->setBasePath('/alto');
$router->map('GET|POST','/', 'home#index', 'home');
$router->map('GET|POST','/', 'display.php', 'display');
$router->map('GET','/plan/', 'plan.php', 'plan');
$router->map('GET','/users/', array('c' => 'UserController', 'a' => 'ListAction'));
$router->map('GET','/users/[i:id]', 'users#show', 'users_show');
$router->map('POST','/users/[i:id]/[delete|update:action]', 'usersController#doAction', 'users_do');
// match current request
$match = $router->match();
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');
}
Ho un file chiamato plan.php (piano display) nella cartella di programma e il collegamento ipertestuale che ho sto cercando è
<a href="<?php echo $router->generate('plan'); ?>">Plan <?php echo $router->generate('plan'); ?></a>
whi ch non funziona.
Potete essere d'aiuto?
Ho la pagina iniziale funzionante ma non riesco a chiamare plan.php. La home page ha un collegamento al piano Plan che ho modificato in Plan generate('plan'); ?>. –
home # index funziona perché molto probabilmente hai classe Home con indice di metodo al suo interno. $ router-> map ('GET', '/ plan /', function() { richiede __DIR__. '/plan/plan.php'; }, 'piano'); Quando il percorso è abbinato, questa funzione include il file plan.php. Alternativamente puoi creare un 'piano' di classe con l'indice del metodo e poi sarai in grado di passare l'indice # del piano nello stesso modo in cui si trova per la home page. –