Как лучше всего настроить/добавить страницы в генератор администратора?

StackOverflow https://stackoverflow.com/questions/2522322

Вопрос

Я использую Symfony 1.4 и Doctrine.

Серверная часть моего приложения была создана с использованием генератора администратора Symfony.Это прекрасно работает, когда я хочу отобразить базовые вещи.

Но не так уж много документации о том, как его улучшить и добавить новые страницы.

Давайте возьмем пример:Я хочу разместить опубликованные элементы на одной странице и элементы, подлежащие публикации, на другой.В своем приложении я использовал несколько способов, но не могу понять, какой из них лучше:

  • играться с фильтрами, а затем изменять шаблоны в зависимости от того, где вы находитесь?
  • создание другого модуля, вызывающего другой table_method?
  • какая-то другая техника, о которой я не знаю?

Какова здесь лучшая практика?Как вы обычно делаете настройку администратора?

Это было полезно?

Решение

Здесь бессовестная самореклама.я написал Сообщение блога на этой неделе о настройке генератора администратора. Одной из вещей, которые я сделал, было добавление в генератор новых страниц и т. д.То, как я это сделал, возможно, немного жестковато, но работает хорошо :-)

Лучшее место для поиска — это автоматически сгенерированный класс действий для вашего модуля и его расширение в вашем модуле. app/module/actions/actions.class.php файл.В частности, действие index, которое настраивает пейджер ORM.У вас должна быть возможность использовать любой запрос из вашего ORM для предоставления данных вашему пейджеру ORM — в тех случаях, когда мне нужно изменить его, я использую запрос Doctrine, сгенерированный таким же образом, как обычно, для передачи на пейджер.Это означает, что я могу настроить, какие поля будут отображаться, в том числе из других таблиц, объединенных в один запрос.Это ваш «табличный метод», упомянутый выше.

Фильтры будут работать так же хорошо — это зависит от вашего варианта использования и от того, подходят ли фильтры, особенно для отображения.Если вы хотите /showpublisheditems page, то я бы использовал новое действие и новый запрос для пейджера.Если вам нужна оперативная настройка, воспользуйтесь опцией фильтра.

Документации по фильтрам, как мне показалось, тоже местами не хватало. Подсказка: они ищут addYourColumnNameColumnQuery() метод в вашем классе фильтра верхнего уровня (lib/filter/...), который принимает переданный запрос и использует, например, addWhere("x.column_name = ?", $foo) на переданный запрос.

Блех :-) извини, это был своего рода вынос мозга, но, надеюсь, это поможет!:-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top