Zend: Controller kullanım için geçerli url alın

5 Cevap php

Ben sadece bu yüzden bootstrap bunu ayarlayabilirsiniz bir oturumda dili değişecek, bu denetleyici var.

'Ben' $ this-> _redirect ('library / tarifleri / list); değiştirmek istediğiniz dışında onlar are sayfanın URL'sini olmak. Ive birkaç işlevleri denenmiş ve işe görünmemektedir.

Bir acemi Im Zend kullanıcı, teşekkürler!

class Library_LanguageswitchController extends Zend_Controller_Action {

public function init() {
  $this->_helper->layout->disableLayout ();
  $this->_helper->viewRenderer->setNoRender ();
 }

 public function switchAction() {
  $session = new Zend_Session_Namespace ( 'whatcould' );
  $session->language = $this->_getParam ( 'lang' );

  $this->_redirect ( 'library/recipes/list' );
 }

}

5 Cevap

Ben belki yanlış açıdan bakıyor bu olduğunu düşünüyorum. Yönlendirme tamamlandıktan sonra bir kontrol cihazı harekete geçirilir. Ben görüyorum ne gerçekten denetleyici dili ve ardından rotayı değiştirmek istiyorum. Bu ön denetleyicisi özelleştirme ve orada olaylardan biri için dokunarak ile elde olacaktır.

Referer ayarlamak / kapmak için başka bir basit yolu Bootstrap kodu sizin frontController bir param ekleme yoluyla olmaktadır:

$frontController = Zend_Controller_Front::getInstance();
$frontController->setParam('referer', $_SERVER['HTTP_REFERER']);

ve o zaman gibi denetleyicisi referer kapmak:

$referer = $this->getInvokeArg('referer');

Zend_Controller_Front için Zend Dokümanlar:

7.3.4. Front Controller Parameters

In the introduction, we indicated that the front controller also acts as a registry for the various controller components. It does so through a family of "param" methods. These methods allow you to register arbitrary data – objects and variables – with the front controller to be retrieved at any time in the dispatch chain. These values are passed on to the router, dispatcher, and action controllers. 

Zend için bu işleve sahip değildir. Ama basit bir şekilde, oturumda url kaydetmek ve burada kullanın