Как получить доступ к URL помощник в Zend из моделей - PullRequest
0 голосов
/ 31 августа 2010

есть простой способ получить доступ к помощникам URL-адресов из моделей, подобных имеющимся в контроллерах
я имею в виду, что в контроллерах есть простой способ генерировать URL-адреса, подобные этому:* теперь мне нужен простой способ передать url direclty из модели в представления, а сейчас я передаю CONTROLLER, ACTION AND PARAM в виде массива в контроллер, а затем заменяю текст в контроллере наURL-адрес помощника в контроллере, но я хочу лучшего способа есть один?

Ответы [ 4 ]

7 голосов
/ 17 января 2013

Вы можете получить доступ к помощнику по URL, напрямую позвонив по нему:

$urlHelper = new Zend_View_Helper_Url();
$urlHelper->url(array(),'',true);
1 голос
/ 31 августа 2010

Модель не должна получать доступ к представлению и не должна знать о нем.

Если вам нужно выполнить работу, связанную с уровнем представления, используйте либо помощник действий, либо помощник вида.Данные, которые вы обрабатываете, полностью доступны в контроллере, поэтому не нужно передавать их из модели.

0 голосов
/ 21 августа 2011

Я нашел следующий фрагмент кода в книге, он может кому-то помочь:

$urlHelper = $this->_helper->getHelper('url');
$urlHelper->url(array( 
            'controller' => 'customer' , 
            'action' => 'save' 
            ),
            'default'
        );
0 голосов
/ 22 октября 2010

на самом деле это немного специфично для моей проблемы, но я заставил работать так

$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']); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...