SORU
22 AĞUSTOS 2012, ÇARŞAMBA


Nasıl erişim yolu, yazı, vb. Çalışabilir Çerçeve 2 parametreleri

Nasıl çeşitli parametreleri zf2 sayfa isteği ile ilgili alabilir miyim? Gibi post/parametreleri, yol erişilen, başlıklar ve yüklenen dosyaları gönderdi.

CEVAP
22 AĞUSTOS 2012, ÇARŞAMBA


Beta5 Params plugin, tanıtılan kullanmak olacaktır bunu yapmak için en kolay yoludur. Kolay parametreleri farklı erişim yapmak için yardımcı program yöntemleri vardır. Her zaman olduğu gibi, the tests okuma değerli bir şey söylenmelidir için ne kadar değerli olduğunu kanıtlayabilirim.

Tek bir değeri olsun

Bir Denetleyici olarak adlandırılmış bir parametre değerini almak için, aradığınız parametre türü için uygun yöntemi seçin ve Adı geçmek gerekir.

Örnekler:

$this->params()->fromPost('paramname');   // From POST
$this->params()->fromQuery('paramname');  // From GET
$this->params()->fromRoute('paramname');  // From RouteMatch
$this->params()->fromHeader('paramname'); // From header
$this->params()->fromFiles('paramname');  // From file being uploaded

Varsayılan değerler

Bu iki yöntem de eğer verilen isimde bir parametre bulunursa iade edilecektir varsayılan değerleri destekler.

Örnek:

$orderBy = $this->params()->fromQuery('orderby', 'name');

http://example.com/?orderby=birthdateziyaret $orderBydeğeri olacaktırdoğum tarihi.
http://example.com/ziyaret $orderBysahip olacaktırvarsayılandeğeradı.

Tüm parametreler

Bir türün tüm parametreleri almak için, sadece hiçbir şey geçemiyor ve Parametreler eklentisi anahtarları olarak, onların isimlerini değerler dizisi döndürür.

Örnek:

$allGetValues = $this->params()->fromQuery(); // empty method call

http://example.com/?orderby=birthdate&filter=hasphone ziyaret ederken$allGetValuesbir dizi gibi olacak

array(
    'orderby' => 'birthdate',
    'filter'  => 'hasphone',
);

Parametreler kullanarak değil eklenti

Eğer source code Parametreler için eklenti işaretlerseniz, sadece diğer denetleyicileri etrafında ince bir sarıcı daha tutarlı parametre alımı için izin olduğunu göreceksiniz. Eğer bazı sebeplerden dolayı onlara erişmek için doğrudan ihtiyaç/istiyorsanız, nasıl yapıldığını kaynak kodunu görebilirsiniz.

Örnek:

$this->getRequest()->getRequest('name', 'default');
$this->getEvent()->getRouteMatch()->getParam('name', 'default');

NOT:Bu superglobals $_GET, $_POST vs. kullanabilirdin ama bu önerilmez.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011