Symfony 1.4 Dinamik form alanları

0 Cevap php

Ben bir e-ticaret projesi üzerinde çalışıyorum ve ben sepeti güncelleme sıkışıp kaldım. Burada akım miktarlarını içeren giriş alanları ile, güncel sepeti içeriğini kullanarak bir form sunmak zorunda.

Ben belgeleri ve forumları kontrol, ama yararlı bir şey bulamadık. Sorun çok alanlar var nasıl olacak bilmiyorum çünkü benim formu sınıfında tam form alanları ilan edemezler. Ben bu çalıştı:

class CartForm extends sfForm {
  public function configure()
  {
    $cart = sfContext::getInstance()->getUser()->getShoppingCart();
    foreach ($cart->getItems() as $item) {
      $widgetName = $item->getId().'_quantity';
      $this->widgetSchema[$widgetName] = new sfWidgetFormInput(
        array(),
        array(
            'class' => 'quantity-input',
            'id'    => null,
            'name'  => $widgetName
        )
      );
      $this->widgetSchema->setDefault($widgetName, $item->getQuantity());
      $this->validatorSchema[$widgetName] = new sfValidatorInteger(array(
        'required' => true,
        'min'      => 1
      ),
      array());
    }
    unset($cart);
    $this->getWidgetSchema()->getFormFormatter()->setRowFormat('%field%%error%%hidden_fields%');
  }
}

ama bazı hatalar var:

Fatal error: Cannot use object of type sfShoppingCart as array in /home/sfprojects/mdmall/lib/vendor/symfony/lib/form/sfForm.class.php on line 784

bu nedenle bu doğru yol değildir. Ben herhangi bir biçim sınıfları (ve doğrulayıcılarıyla) olmadan ham alanlarını kullanmaya çalıştı ama formu göndermek zaman bu tetiklemek değil, çünkü çok garip bir şey yerine ben bir 404 hatası alıyorum $ _POST değerleri alma, olur:

cart_update:
  url:    /cart/update.:sf_format
  class:  sfRequestRoute
  param:  { module: cart, action: update, sf_format: html }
  requirements: { sf_method: post }

Ben gereksinimi kaldırırsanız, cart / güncelleme çalışır, ancak isteği nesne $ _POST veri yok. Eğer herhangi bir fikir var mı?

0 Cevap