Skip to content

Instantly share code, notes, and snippets.

@nischalsource
Created May 19, 2015 13:59
Show Gist options
  • Save nischalsource/93cf8a62dbf6c62f82b8 to your computer and use it in GitHub Desktop.
Save nischalsource/93cf8a62dbf6c62f82b8 to your computer and use it in GitHub Desktop.
UsageType
<?php
namespace CampaignTool\CampaignToolBundle\Form;
use CampaignTool\CampaignToolBundle\Entity\Telephone;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class UsageType extends AbstractType
{
private $UsageId;
public function __construct($UsageId)
{
$this->UsageId = $UsageId;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$myModifier = $this->UsageId;
$builder
->add('name')
->add('act')
->add('categoryId')
/* ->add('telephoneNumbers', 'collection', array(
'type' => new TelephoneType(),
'allow_add' => true,
'allow_delete' => true,
//'cascade_validation' => true,
'by_reference' => false,
), array('label'=>'telephoneNumbers'))*/
->add('telephoneNumbers', 'entity', array(
'class' => 'CampaignToolBundle:Telephone',
'property' => 'telephoneNumber',
'query_builder' => function(EntityRepository $er) use ($myModifier){
return $er->createQueryBuilder('t')
->where('t.usage = :myModifier')
->setParameter('myModifier', $myModifier);
},
))
->add('campaignAliases', 'collection', array(
'type' => new CampaignAliasType(),
'allow_add' => true,
'allow_delete' => true,
//'cascade_validation' => true,
'by_reference' => false,
), array('label'=>'campaignAliases'))
->add('quality')
->add('comment')
->add('save', 'submit', array('label' => 'Save'))
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'CampaignTool\CampaignToolBundle\Entity\Usage'
));
}
/**
* @return string
*/
public function getName()
{
return 'campaigntool_campaigntoolbundle_usage';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment