Код: Выделить всё
namespace App\Form\Fields;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
class EntityField extends AbstractType
{
public function configureOptions(OptionsResolver $resolver): void
{
parent::configureOptions($resolver);
// some additional configuration
$resolver->setDefaults([
'query_builder' => function (EntityRepository $er): QueryBuilder {
return $er->createQueryBuilder('entity')
->andWhere('entity.deletedAt IS NULL');
},
]);
}
public function getParent(): string
{
return EntityType::class;
}
}
он работает нормально, пока я уже использовался в Softdeleted. У меня есть пользователь , file и filetype объекты, пользователь имеет сбор файла s и file имеет filetype . Я SoftDelet некоторый FileType и для меня это означает, что я не хочу создавать новый файл s этого филетипа , но все существующие s этого филетипа < /code> все еще законно и должны быть должным образом отображаться в формах. «Правильно» означает, в данном случае, что если я рендеринг файл форма и этот точный файл удалил FiLetype , Select должен иметь это FileType . Но теперь у меня нет выбранного значения в этом поле, и он похож на «нет выбранного типа файла для этого файла», которого нет. FormEvents :: PRE_SET_DATA Событие и добавьте значение из базы данных, но он выглядит так, будто список выбора генерируется до этого события, потому что я могу видеть обновленную Query_builder в форме, но реальный запрос соответствует Unmodified Query_buider .
Существуют методы buildview и finishview , но я не думаю, что это хорошая идея их использовать, потому что в этом Случай мне нужно вручную изменить атрибуты формы. Может я забыл какие -то варианты формы?
Подробнее здесь: https://stackoverflow.com/questions/794 ... by-softdel