首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

[已解决]如何隐藏URI中default controller的名字,比如隐藏index

复制PHP内容到剪贴板
PHP代码:
Zend_Loader:oadClass("Zend_Controller_Router_Rewrite");
Zend_Loader:oadClass("Zend_Controller_Router_Route");
$router=newZend_Controller_Router_Rewrite();
$route=newZend_Controller_Router_Route('/login',array('controller'=>'index','action'=>'login'));
$router->addRoute('index',$route);
$route=newZend_Controller_Router_Route('/logout',array('controller'=>'index','action'=>'logout'));
$router->addRoute('index',$route);
$frontController->setRouter($router);

难道要写无数的$route?有没有更简单的方法?谢谢!
引用:
方法见 6楼
[ 本帖最后由 up1m 于 2007-8-10 17:56 编辑 ]
昵称: up1m  时间: 2007-08-10 01:49:00
不知道你的隐藏是什么概念,如果只是不显示调用,那只要你的 url 地址中不出现,就是不显示的~~
昵称: mikespook  时间: 2007-08-10 13:22:00
我的Controller就一个IndexController

然后很多页面必须是 http://zend/index/ActionName/param1/A/param2/B

我就是想隐藏中间的/index

不知道说清楚了没有?
昵称: up1m  时间: 2007-08-10 14:24:00
Zend_Controller_Router_Route_Regex
用这个试试~~~只要是有规律的,这个就应该可以满足你的要求~~
昵称: mikespook  时间: 2007-08-10 15:01:00
够呛能隐藏,因为你隐藏之后,后面的ActionName就会被作为Controller

如果需要传递参数的话,为什么不取一个有意义的Controller呢,比如user,show,etc
昵称: lzyy  时间: 2007-08-10 17:29:00
index.php增加如下语句
复制PHP内容到剪贴板
PHP代码:
$route = new Zend_Controller_Router_Route(
    
':action/*',
    array(
'controller' => 'index')
);
$router->addRoute('index'$route);

view里地址都写成
复制PHP内容到剪贴板
PHP代码:

<?php echo $this->baseUrl;?>/ActionsName/....................

注意,这只能在只有一个controller的项目里用,如果再增加别的controller就没办法用了,至少目前我还没找到办法

我把乱七八糟的东西都放到model里了,所以controller index的代码量实际很小

[ 本帖最后由 up1m 于 2007-8-28 10:41 编辑 ]
昵称: up1m  时间: 2007-08-10 17:50:00
少见的好文章。:lol  楼主是个善于思考的人。
昵称: 9tmd  时间: 2007-08-28 01:06:00
非常不错~ 收藏了
昵称: edwardhey  时间: 2007-08-28 08:06:00