2017-02-06 10 views
0

В моей сонаты администратора, мне нужны те же коллекции объект несколько раз, потому что я фильтровать коллекцию с критериямиИспользуйте sonata_type_collection несколько раз в админ

$criteria = Criteria::create()->where(Criteria::expr()->gte('size', 3))->andWhere(Criteria::expr()->eq('type', 'dt')); 
    $data = $this->getSubject()->getData()->matching($criteria); 

и добавить его в configureFormFields путем пропускания его через поле данных с

$formMapper->add('data', 'sonata_type_collection', ['data' => $data] ... 

Это хорошо работает.

Но теперь я хочу еще данные из той же коллекции и отображать его позже на другую вкладку, поэтому я попытался

$criteria2 = Criteria::create()->where(Criteria::expr()->gte('size', 4))->andWhere(Criteria::expr()->eq('type', 'du')); 
    $data2 = $this->getSubject()->getData()->matching($criteria2); 

$formMapper->add('data', 'sonata_type_collection', ['data' => $data2] ... 

Это не работает!

У меня нет ошибки, но похоже, что последний вызов $ formmapper-> add() переопределяет первый.

Почему? Как я могу распространять данные, отфильтрованные из одной коллекции, на несколько вкладок?

Я должен использовать класс sonata_type_collection, потому что он должен быть доступен для редактирования внутри и отображается как список.

Благодаря

ответ

0

Если я понимаю, что вы исправить, вы не должны сохраняться его, после этого, не так ли?

Вы чувствуете себя хорошо, что он перезаписывает друг друга. Не могли бы вы переименовать вторую в data_foo, чтобы сделать это не отображаемым полем?

Лучший, Оскар

+0

Я должен упорствовать. В основном я хочу просто разделить sonata_type_collection на 3 разных вкладки и при сохранении набора данных все данные должны быть сохранены ... Если я назову его на «data_foo» сонатные ошибки с «Нет администратора, определенного для data_foo» ... –