1. 手动定义url
在/var/www/html/book/app/controllers下,构建一个BookController:
<?php
class BookController extends \Phalcon\Mvc\Controller
{
public function indexAction()
{
}
public function addAction(){
echo "Add Page";
}
public function editAction(){
echo "Edit Page";
}
}
若是正常的访问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