zenstruck_form_bundle(如何使用自定义存储库)

时间:2015-12-02 10:29:31

标签: symfony

我对zenstruck_form_bundle有些困难。 我正在寻找一个例子,其中包括" repo_method"使用。

我在symfony项目工作(我是初学者)。

在我的表单类型中:

->add('mentions', 'zenstruck_ajax_entity', array(
            'class' => 'AimaFormationBundle:Mention',
            'use_controller'    => true,
            'property' => 'mention',
            'repo_method'    =>  'searchMentionByDomaineDfe',
            'extra_data' => [$idDomaineDfe],
            'label' => '* MENTIONS',
            'multiple' => true,
            'placeholder' => 'La mention (4 lettres min)',
            'required' => true,

             ))

在我的知识库方法中:

//Recherche des mentions par domainedfe
public function searchMentionByDomaineDfe($idDomaineDfe)
{

     $qb = $this->createQueryBuilder('m');

     $qb->innerJoin('m.domaineDfe', 'd' , 'WITH', 'd.id = :domdfe');

     $qb->setParameter('domdfe', $idDomaineDfe);

       return  $qb;
}

1 个答案:

答案 0 :(得分:0)

在官方文件中:https://github.com/kbond/ZenstruckFormBundle

写道:

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class MyFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name', 'zenstruck_ajax_entity', array(
                'class'             => 'AppBundle:MyEntity', // ensure MyEntity::__toString() is defined
                'use_controller'    => true,
                'property'          => 'name', // the entity property to search by
                // 'repo_method'    => 'findActive' // for using a custom repository method
                // 'extra_data'     => array() // for adding extra data in the ajax request (only applicable when using repo_method)
            ))
        ;
    }

    // ...
}

我认为这是一个例子......

<强>更新

字段“repo_method”需要一个字符串,该字符串是链接存储库中方法的名称。不是查询构建器......

查看official doc以创建自定义存储库。