class User
{
public $id;
public $username;
public function getCompanies()
{
//stuff
}
}
class Company
{
public $id;
public $name;
public static function getForUser(User $user)
{
//stuff
}
}
Symfony的自定義ChoiceType我具備上述兩個模型,並希望創建一個可重複使用的自定義字段ChoiceType
,這將是基於用戶對象的過濾Company
ID(或物體)的選擇框。如果沒有提供User
,則有一個ChoiceType
(選擇框)的所有公司對象。過濾其它對象
我該如何解決這個問題?我一直在閱讀Symfony文檔,並且似乎無法找到類似於我的需求的任何示例。
我可以使用公司類中的getForUser()
或用戶類中的getCompanies()
(他們幾乎完成同樣的事情)。
公司和用戶之間沒有直接關係。他們通過其他對象/表格(經理/客戶/聯繫人)「加入」。
class CompanyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('company', ChoiceType::class, array(
"choices" => ??????
));
}
public function getParent()
{
return ChoiceType::class;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Company::class,
));
}
}
所有幫助將不勝感激。
你看着https://symfony.com/doc/current/form/dynamic_form_modification.html? –
我做了類似的事情,我使用的方法是創建一個「聯繫人」實體,通過公司ID和與其關聯的人員確定聯繫人。該選擇基於提供既定聯繫人和尚未被確定爲聯繫人的用戶的查詢。我的解決方案使用了Ajax,所以字段類型是文本,並帶有JSON後端。 – user2182349
@JasonRoman我做到了。我無法弄清楚如何正確使用'如何動態生成基於用戶數據的表單'。 – WhiteFire