首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii中路由的初始化和使用(与Zend的比较)

Yii中路由的初始化和使用(与Zend的比较)
EN

Stack Overflow用户
提问于 2012-09-12 21:13:14
回答 1查看 279关注 0票数 0

我在Zend框架方面有一些经验。最近,我开始使用Yii。

现在我试图在这个框架中找到一些类比。

在Zend中,几乎每条路由都有自己的名称。例如,您可以创建下一条路由‘photo_map’:

代码语言:javascript
复制
$router->addRoute('photos_map',
    new Zend_Controller_Router_Route('map/:city', array(
        'controller' => 'photos', 
        'action' => 'map',
        'city' => ''
    ))
);

并通过url helperview中使用它

代码语言:javascript
复制
echo $this->url(array(), 'photos_map') // output '/map'

在Zend中,您还可以在初始化或url-helper调用中传递参数(在上面的示例中是city)。

如果你想改变map/:city,你只需要在初始化urls中把参数字符串改成你想要的。它非常有用,因为你不需要在你的代码中到处替换旧的url到新的url。

我的问题是,这在Yii是可能的吗?我流利地阅读了文档,并开始认为Yii路由的功能要弱得多。这是牺牲了性能,还是我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-13 15:35:09

Yii中的路由很简单,与Zend相比略有不同。在Yii中,视图是使用控制器呈现的,因此要呈现视图,必须调用控制器。例如,你在一个网站的首页,你想要转到预览页面。

代码语言:javascript
复制
$url = Yii::app()->createUrl('/site/preview');
//Here site is the name of the controller class and preview is the name of the action
//You will need to have a controller named SiteController in your controllers folder
//You will need to have a folder named "site" in your views folder
//You will need to have an action(function) defined as actionPreview in your controller class

现在在控制器类中(在本例中是SiteConroller.php),

代码语言:javascript
复制
public function actionPreview()
{
     $this->render('preview',array('data'=>''));
     //will render preview.php located in views/site/preview.php
     //u can pass parameters in array as shown above, in this case data 
}

如果你想改变url,你可以简单地改变$ helps..........Feel ->render(‘your_view_file.php’)部分;我希望它可以自由地提出问题......

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12389019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档