如何从模型中访问zend中的url helper

时间:2010-08-31 06:18:59

标签: php debugging zend-framework

有一种简单的方法可以从模型中访问url帮助器,例如控制器中可用的模板 我的意思是在控制器中有一种简单的方法来生成这样的URL:

$this->_helper->url(controller,action,null,params);

现在我需要的是将urls direclty从模型传递到视图的简单方法,现在我要做的是将CONTROLLER,ACTION和PARAM作为数组传递给控制器​​,然后用控制器替换控制器中的文本与控制器中的助手网址,但我想要一个更好的方法是有吗?

4 个答案:

答案 0 :(得分:7)

您可以通过直接调用来访问url帮助程序:

$urlHelper = new Zend_View_Helper_Url();
$urlHelper->url(array(),'',true);

答案 1 :(得分:1)

模型不应该访问View,也不应该知道它。

如果您必须完成与表示层相关的工作,请使用Action Helper或View Helper。您正在处理的数据在Controller中完全可用,因此不需要从模型中传递它。

答案 2 :(得分:0)

实际上它有点特定于我的问题,但我以这种方式工作

$check['msg'] == will contain the error or success message  

从模型中我传递导致问题的链接

$messages['link'] = array('action'=>'index','controller'=>'trip','params'=>$tripid );  

控制器上的

$check['msg'] = str_replace('%link%',$this->_helper->url($check['link']['action'],$check['link']['controller'],null,array('id' => $check['link']['params'])),
                                $check['msg']);

$this->_flashMessenger->addMessage($check['msg']); 

答案 3 :(得分:-2)

我在一本书中找到了以下代码段,它可能对某人有所帮助:

$urlHelper = $this->_helper->getHelper('url');
$urlHelper->url(array( 
            'controller' => 'customer' , 
            'action' => 'save' 
            ),
            'default'
        );