ZF: Form yöntemi içinde kontrolörün Request nesnesi erişmek nasıl?

2 Cevap php

How to access Request object within Form method? I assume it's somehow possible to access controller's request object using ActionHelper inside Form methods, but writing a new class for such a task seems to be excessive.

Ya da bir şekilde Formu Kayıt Defteri öğesi Zend_Registry ve erişim için kontrolörün Talebiniz kaydetmeniz gerekir?

2 Cevap

Kayıt yöntemi (1) yanı sıra (2) hem de çalışacak tekiz ön denetleyicisi erişen rağmen, her iki yöntem ile bazı büyük dezavantajı var: Ya Zend_Controller_Front üzerine sert dependeny veya {tanıtmak [(1)]} ve talep anahtar hem de Zend_Controller_Request_Abstract.

// (1)
// in bootstrap e.g.
Zend_Registry::set('request', Zend_Controller_Front::getInstance()->getRequest());

// in form method
$request = Zend_Registry::get('request');

// (2)
//in form method
$request = Zend_Controller_Front::getInstance()->getRequest();

Ben iyi yolu formun kurucusu yoluyla veya formda bir setter aracılığıyla hatta daha iyi sadece bir dizi olarak talep parametreleri enjekte forma istek nesne enjekte ya olacağını düşünüyorum.

// form class (constructor-injection presumed)
class My_Form extends Zend_Form
{
    /**
     * @var Zend_Controller_Request_Abstract
     */
    protected $_request;

    public function __construct(Zend_Controller_Request_Abstract $request, $options = null)
    {
        parent:: __construct($options);
        $this->_request = $request;
    }       
}
// or inject only parameters
class My_Form extends Zend_Form
{
    /**
     * @var array
     */
    protected $_params;

    public function __construct(array $params, $options = null)
    {
        parent:: __construct($options);
        $this->_params= $params;
    }       
}
$request = Zend_Controller_Front::getInstance()->getRequest()

?