Symfony 1.3: необходимо переопределить набор данных поля внутреннего фильтра - PullRequest
2 голосов
/ 23 июня 2011

Мой проект использует Symfony 1.3.11, версия PHP 5.3.3.

Позвольте мне объяснить мой случай и мою проблему:

  1. Мы хотели добавить еще один видпользователь, а не просто «пользователь» и «админ» (используя sfGuardPlugin).Я добавил «бизнес» и дал ему разрешения только на ОДИН административный модуль - «покупки» (доступ к собственным и при некоторых условиях - к покупкам других людей, совершенным на сайте).
  2. «Бизнес»Пользователь может быть связан с одним или несколькими партнерами (фирмами), зарегистрированными на сайте, что фактически позволяет нам по-разному обращаться с владельцами бизнеса или представителями.
  3. Когда «деловой» пользователь получает доступ к разделу администратора, списокиз покупок, которые он видит, должно быть таким: все покупки для всех продуктов всех партнеров, которых он связал с ним.(Не совсем тривиальный запрос).
  4. Я сделал это, на мой взгляд, глупо, но он работает - а именно, переопределил "apps / backend / modules / purchase / actions / actions.class..php # executeIndex».Сначала мне нужно было скопировать и вставить в кэш некоторый код из версии этого метода.
  5. Короче говоря, я подключился к «executeIndex» и добавил код для выполнения надлежащих критериев, а также кодработает.

Проблема теперь заключается в следующем :

Поле фильтра над списком (поле, содержащее список продуктов) содержит все возможные продукты.Мы хотим, чтобы он содержал только Продукты для всех Партнеров, с которыми связан текущий пользователь.

Дело в том, что я впервые переопределяю фильтры администратора, и я теряюсь в отношении того, куда мне подключать свой код.

Любая помощь приветствуется.Спасибо за ваше время.

ОБНОВЛЕНИЕ : Странно, очень непопулярный вопрос.Никто никогда не должен был это делать?Ничего себе.

1 Ответ

1 голос
/ 23 июня 2011

Вы должны сбросить product_list и установить другой виджет с отфильтрованными вариантами.

Проверить этот пост , где я объясняю что-то подобное, но с использованием доктрины.В вашем случае sfGuardUserForm является вашим somthingFilterForm .

Вы также можете фильтровать данные, используя этот метод .Это немного элегантнее, но оба сработают.

...