簡體   English   中英

Symfony2 參數與嵌入形式

[英]Symfony2 parameter with embedded forms

編輯:我找到了真正的問題!

我試圖從控制器給一個子表單一個參數。 沒有這個參數,表單就可以完美運行。

我想在選擇列表中僅顯示關系中尚未存在的用戶。 我有這個 query_builder:

'query_builder' => function(UserRepository $er) use($options) {
                                    return $er->getFormateursAvailable($options['categ']);
                               },

和方法:

public function setDefaultOptions(OptionsResolverInterface  $resolver)
{
    $resolver->setDefaults(array('data_class' => 'Intranet\FormationBundle\Entity\CategorieFormateur', 'categ' => false));
    //$resolver->setDefaults(array('data_class' => 'Intranet\FormationBundle\Entity\CategorieFormateur'));
}

對於集合表單,因此,我必須將此選項放入表單中:

'options' => $options,

但是不知道是不是真的,還得定義方法:

public function setDefaultOptions(OptionsResolverInterface  $resolver)
{
    $resolver->setDefaults(array('categ' => false));
}

(如果沒有參數,表單在沒有此方法的情況下工作。)並調用:

$form = $this->createForm(new GererFormateurCategorieType(), $categorie, array('categ' => $categorie));

然后,我有這個錯誤:

屬性“user”和方法“getUser()”、“isUser()”、“hasUser()”、“__get()”都不存在並且在類“Intranet\\FormationBundle\\Entity\\Categorie”中具有公共訪問權限.

關系:

類別具有此屬性:

/**
* @ORM\OneToMany(targetEntity="Intranet\FormationBundle\Entity\CategorieFormateur", mappedBy="categorie", cascade={"persist", "remove"}, orphanRemoval=true)
**/
private $formateurs;

使用 addFormateur、removeFormateur 和 getFormateurs

類別Formateur :

    /**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Intranet\FormationBundle\Entity\Categorie", inversedBy="formateurs")
* @ORM\JoinColumn(name="categorie_id", referencedColumnName="id")
*/
private $categorie;

/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Intranet\UserBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;

每個屬性都有 setter 和 getter。

根據錯誤信息,您必須添加setFormateurs()方法在你Categorie實體:

public function setFormateurs($formateurs)
{
    $this->formateurs = $formateurs;

    return $this;
}

我找到了另一種方法,這不是真正的答案:

在存儲庫中,我使用 $request = Request::createFromGlobals();

我分解 $requestPathInfo() 以獲取最后一個參數,並在查詢中使用它...

但是關系中的現有用戶沒有加載,盡管他們沒有出現在列表中。

我希望有人知道如何正確地做到這一點!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM