Zend çerçevede yönlendirme ve ileri arasındaki fark nedir?
Biz redircet kullanmanız gerekir ve ne zaman ileri ne zaman kullanmalıyım?
Başka bir denetleyici eylem _forward() sadece forwards herşey, _redirect() yeni bir HTTP isteği oluşturmak ve onunla bütün gönderme sürecinden geçmesi, yani bir başlık gönderirken.
Örneğin, yukarı ararsanız http://example.com/foo/bar Eğer foo denetleyicisi ve bar eylemi çağırır. Eğer öne baz eylem bar eylem içinde, örneğin bir yönlendirme yaparken, ZF http://example.com/foo/baz yüklemek için tarayıcıyı talimat olur ise aynı isteği dahilinde, tarayıcı hala, aynı URL olurdu.
Esasen, _forward() yapar
$request->setActionName($action)
->setDispatched(false);
_redirect() yapar iken
$this->_helper->redirector->gotoUrl($url, $options);
Ben form verilerini yineden sonuçlanan bir sayfayı yeniden engellemek istediğimde genellikle yönlendirir yok.
Bu bakınız:
Sen _forward() Eğer URL aynı kalmak isteyen durumlar için kullanmak - beware, iki kez denir ne olursa olsun temel denetleyicisi sınıf kullanmakta olduğunuz anlamına gelmez ama.
Bu açık veya önemsiz görünebilir, ancak akılda tutulması değilse, gerçekten akışının sezgisel anlayış tek bir isteği bir denetleyici örneği çağıran olduğunu göz önüne alındığında, uygulama tasarımı berbat edebilirsiniz. Örneğin o have static olarak ilan edilmesi için istek-kapsam singletons anlamına gelir, ya da _forward() onları kıracak.
Yönlendirme eylemi Geçerli sayfayı süreci biter ve başka yönlendirir. Tarayıcı yeniden yönlendirme aldığı gibi tüm bağlam (yeni denetleyici / eylem) değişecektir. Bu, yeni bir URL'ye bağlanıyor
Ileri aynı sayfada kalacak, ancak değişmeden bağlamını bırakacaktır Oysa. Sen bir işlev çağrısı olarak görebilirsiniz. Sizin views zamanki gibi yüklenir.