2017-01-03 10 views
0

Я пытаюсь получить метод index() контроллера Home с помощью altorouter, но не могу. Я искал несколько мест, но я не мог найти никакой помощи.Вызов метода контроллера в Altorouter

Вот index.php

<?php 

include 'system/startup.php'; 
include 'library/AltoRouter.php'; 

// Router 
$router = new AltoRouter(); 
// Change here before upload 
$router->setBasePath('/demo'); 
$router->map('GET|POST','/', 'home#index', 'home'); 

// match current request 
$match = $router->match(); 

if($match && is_callable($match['target'])) { 
    call_user_func_array($match['target'], $match['params']); 
} else { 
    // no route matched 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 

домашний контроллер в каталоге> каталог контроллера.

<?php 
class home { 
    public function index() { 
     echo 'home'; 
    } 
} 

Может ли кто-нибудь использовать или когда-либо использовать этот путеводитель по альтруару ?.

P.S. У меня есть функция автозагрузки в файле startup.php (в верхней части index.php)

+0

Как выглядит ваш запрос? –

+0

@hd, это должно быть дома .... на моем xampp это «localhost/demo», –

ответ

0

Это старая нить, но это может вам помочь. Вам нужен запрос на совпадение по-разному:

<?php 

include 'system/startup.php'; 
include 'library/AltoRouter.php'; 

// Router 
$router = new AltoRouter(); 
$router->setBasePath('/demo'); 
$router->map('GET|POST','/', 'home#index', 'home'); 
$match = $router->match(); 

if ($match === false) { 
    // here you can handle 404 
} else { 
    list($controller, $action) = explode('#', $match['target']); 
    if (is_callable(array($controller, $action))) { 
     call_user_func_array(array($controller,$action), array($match['params'])); 
    } else { 
     // here your routes are wrong. 
     // Throw an exception in debug, send a 500 error in production 
    } 
}