0
我正在創建新的發票表單,其中包括具有某些常量值的選擇輸入。 我已經通過服務使它:symfony2服務數組參數。如何根據密鑰獲得價值
services.yml
parameters:
stawki_vat:
0: 0%
5: 5%
8: 8%
23: 23%
zw: zw.
services:
acme.form.type.stawki_vat:
class: Acme\FakturyBundle\Form\Type\StawkiVatType
arguments:
- "%stawki_vat%"
tags:
- { name: form.type, alias: stawki_vat }
StawkiVatType.php
class StawkiVatType extends AbstractType
{
private $stawkiVatChoices;
public function __construct(array $stawkiVatChoices) {
$this->stawkiVatChoices = $stawkiVatChoices;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'choices' => $this->stawkiVatChoices,
));
}
public function getParent()
{
return 'choice';
}
public function getName()
{
return 'stawki_vat';
}
}
TowarType.php
class TowarType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nazwa_towar', null, array('label' => 'Nazwa towaru/usługi'))
->add('cena_netto', null, array(
'label' => 'Cena netto'
))
->add('vat', 'stawki_vat', array(
'attr' => array('class' => 'styled'),
'label' => 'Stawka VAT',
))
;
}
在形式上,一切都很完美。 但現在,我想獲取存儲在數據庫(stawki_vat的鍵)中的值並顯示stawki_vat數組的值。
如何以簡單的方式實現這一點?
順便說一句,如果你需要注入你知道存在的服務,但你不知道名稱,你可以使用'php app/console container:debug'。例如,'php app/console container:debug | grep EntityManager'會輸出顯示服務名稱的doctrine.orm.default_entity_manager容器Doctrine \ ORM \ EntityManager'(doctrine.orm.entity_manager'只是這個服務的別名)。 – Peter
好吧,在表單中它的效果很好,但是如何在發票清單中顯示'23%'而不是'23'?如何獲得stawki_vat屬性並顯示此特定鍵的值? –
您需要爲您的自定義表單類型[創建模板](http://symfony.com/doc/currentbook/form/create_custom_field_type.html#creating-a-template-for-the-field)。 – Peter