Phalcon中使用Router定义路径

1. 手动定义url

在/var/www/html/book/app/controllers下,构建一个BookController:


若是正常的访问addAction,一般为:

http://localhost/book/book/add

现在使用Router去定义新的路由:

打开/public/index.php。

加入以下代码:

$router = $di->getRouter(); //$di为FactoryDefault的实例化
        $router->add(
                "/testRouter/book/add/v1",
                array(
                        "controller" => "book",
                        "action" => "add"
                )
        );
$router->handle();

此时重新打开浏览器,输入以下url,进行测试:

http://localhost/book/testRouter/book/add/v1

也可以成功访问。

2. 使用更灵活的router去定义url

假如使用方法1,如果为多个控制器或者多个行为定义url,那么需要重复撰写多行。

phalcon提供一种更灵活的方法:

$router = $di->getRouter();
        $router->add(
                "/testRouter/:controller/:action/v1",
                array(
                        "controller" => 1 ,
                        "action" => 2
                )
        );
$router->handle();

其中,使用了模糊的概念,1代表路径中定义的第一个参数:controller,2代表路径中的第二个参数:action。意味着此时,我们不再需要为路径去指定固定的controller或者action,比方说:

http://localhost/book/testRouter/book/add/v1    //将访问bookController的addAction
http://localhost/book/testRouter/user/edit/v1    //将访问UserController的editAction


你可能感兴趣的:(Phalcon中使用Router定义路径)