2016-04-10 12 views
2

私はすべてのステップオブジェクトに一致するエントリを取得しようとしますが、カスタムクエリを使用する必要があるため直接関係はありません。ListMapperの管理者リストのカスタムクエリsonata_type_modelフィールド

私は私のadminクラスにすることを試みた:

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('texteEtape', null, array('label' => $this->getTranslator()->trans('label.step.text'))); 

    $this->addCountryListMap($listMapper); 

    $listMapper 
     ->addIdentifier('id') 
     ->add('temperature') 
     ->add('rincage', null, array('label' => $this->getTranslator()->trans('label.rinsing'))) 
     ->add('concentration') 
     ->add('temps', null, array('label' => $this->getTranslator()->trans('label.time'))) 
     ->add('produit', null, array('label' => $this->getTranslator()->trans('label.product'))) 
     ->add('enabled', null, array('editable' => true)) 
     ->add('_action', 'actions', array(
      'actions' => array(
       'edit' => array(), 
       'delete' => array() 
      ) 
     )) 
     ->add('updatedAt') 
     ->add('Protocols','sonata_type_model', array('required' => true, 
      'class'=> 'HypredMainBundle:Protocole','property'=> 'name', 
      'query_builder' => $this->getProtocoles($listMapper->get('id')))); 

getProtocoles機能:

private function getProtocoles($id) { 
    $querybuilder = $this->getManager()->getRepository('HypredMainBundle:Etape')->getStepProtocoles($id); 

    var_dump($querybuilder->getQuery()->getResult()); 
    die(); 

    return $querybuilder; 
} 

私は(識別子がFieldDescriptionオブジェクトを返す)も、現在のエンティティIDを渡す方法を知っていただきたいと思います。

多分私は何かか何かを逃して、私は私の記事が包括的であることを願っています。

お時間をいただきありがとうございます。

答えて

4

私は、あなたが試してみると、うまくいかないと思います。

私はプロトコル用のカスタムテンプレートを定義しようとする属性

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('id') 
     ->add('Protocols','string', array('template' => 'HypredMainBundle:Protocole:list_protocole.html.twig')) 
    ; 
} 

私は小枝拡張

class AppExtension extends \Twig_Extension 
{ 
    protected $container; 

    public function __constructor($container) 
    { 
     // remember to pass @service_container defining a twig extension service 
     $this->container = $container; 
    } 

    public function getFilters() 
    { 
     return array(
      new \Twig_SimpleFilter('protocols', array($this, 'protocolsFilter')), 
     ); 
    } 

    public function ProtocolsFilter($id) 
    { 
     // content of getProtocoles() function from question 

     $querybuilder = $this->container->get('doctrine')->getManager()->getRepository('HypredMainBundle:Etape')->getStepProtocoles($id); 
     var_dump($querybuilder->getQuery()->getResult()); 
     die(); 

     return $querybuilder; 
    } 

    public function getName() 
    { 
     return 'app_extension'; 
    } 
} 
を書いたものよりも、あなたがオブジェクトとそのID

{{ object.id | protocols() }} 

を持つことになります内部

+0

返信いただきありがとうございます、それはうまく動作します:) – Kupris

関連する問題