Zend Framework değişkeni ile URL yönlendirme

2 Cevap php

Nedir Zend Framework değişkenler ile yönlendirme için önerilen yöntem?

Bir denetleyici içinde bu gibi bir eylem var diyelim:

 public function newAction()
    {
        $form = new Form_ApplicationForm();
        if($this->_request->isPost()){
            $data = $_POST;
            if($form->isValid($data)){
                $appModel = new Model_Application();
                $result = $appModel->createApplication($form->getValue('name'),
                    $form->getValue('email'),
                    $form->getValue('comments'));
                if($result){
                    // redirect here 
                }
            }else{
                $form->populate($data);
            }
        }
        $this->view->form = $form;
    }

I gibi bir şey gösterebilirim bir URL'ye yönlendirmek istedim:

"Teşekkürler for your application, your reference is #123"

Nasıl bu yönlendirme yapmalıdır?

belki böyle bir şey?

$this->_redirect('/application/confirm/'.$result);

Eğer öyleyse o zaman nasıl ben $result VAR erişmek?

EDIT YA ben bu işe sanırım:

$this->_redirect('/application/confirm/?id='.$result);

.. Ama bu iyi uygulama olup olmadığını ben emin değilim?

Ben insanların yönlendirmeleri için _forward() kullanın ama URL vb birden fazla başvuru ile ilgili sorunlar yaratır asla değişmez örneklerini gördüm

Birisi gotoSimple() tavsiye gördüm ama ben bu konuda emin değilim. Hala bir ZF çaylak özür yüzden bu açıktır ancak bu kadar bilmek ilgi olacağını zaten CRUD tip sistemler için çoklu kullanıma sahip bir şey olduğunu tahmin bile.

Teşekkürler

2 Cevap

A lot seçenekleri. Sizin Kontrolörün $this->_redirect() delegeler için çalışma Zend_Controller_Action_Helper_Redirectveya. Onun documentation, tüm seçenekler için kontrol edin ve sizin gibi birini seçmek. Özel yollar gerektirmeyen basit yolları:

$this->_redirect('/controller/action/param1/value1/param2/value2');

veya

$this->_redirect(
    '/controller/action',
    array('param1' => 'value1', 'param2' => 'value2')
);

You're right in paying attention to the difference between _redirect and _fveyaward. Fveyawarding means just re-routing the initial request, while _redirect really causes an HTTP redirect.

Sadece-aşırı, ama sen $_SESSION koyarak, ve sonra sadece bir sonraki sayfada okumayı kabul var değil mi?

Sayfa 1:

$_SESSION['foo'] = 10;

Sayfa 2:

echo htmlspecialchars($_SESSION['foo']);