Я делал это на прошлой неделе, и поначалу тоже немного растерялся. Я могу рассказать вам, что я сделал, и вы адаптируетесь к своему решению.
В моем решении у меня был модуль под названием «Уведомления» со следующими полями: id, content, state, sent_at, instance, creation_at.
В моей проблеме уведомления могут быть отправлены списку пользователей, поэтому пользователи получают внешние данные, а не сохраняются в таблице уведомлений (отношение 1 к n). Поэтому, когда вы редактируете или создаете уведомление, я показываю только несколько полей уведомления (например, его содержимое и экземпляр), а другие поля, такие как дата, недоступны для редактирования (мой выбор).
Таким образом, при создании я показываю только 2 из 6 полей класса. А также я хочу увидеть список пользователей для множественного выбора, поэтому я использую частичку, расположенную в папке шаблонов с именем "_get_all_users_list.php", которая имеет критерии и возвращает тег множественного выбора.
_get_all_users_list.php file
<?php
echo select_tag('users', objects_for_select( UserPeer::doSelect(new Criteria),"getId","getUsername")
,array( "multiple"=>1, "size"=>15) );
?>
И чтобы иметь возможность показывать список пользователей в generator.yml, я делаю это:
generator:
класс: sfPropelAdminGenerator
пары:
model_class: уведомление
тема: по умолчанию
list:
title: Notificaciones
max_per_page: 20
display: [ id, content, state, sent_at, sknow_instance, created_at]
object_actions:
_edit: ~
_delete: ~
batch_actions:
_delete: ~
edit:
title: Modificar notificacion:
display: [content, sknow_instance, _getAllUsersList ]
fields:
content: { name: Notification content, type: textarea_tag, params: size=80x5 }
get_all_users_list: { name: Select one or more users to be notified}
как вы видите в области «display:» файла generator.yml при редактировании, вы можете объявить поля, которые вы хотите редактировать / включить при создании, и если вы хотите включить частичное, вы должны объявить его с помощью _ в начале и в формате camelCase, а имя части должно начинаться с _, а имя должно быть отделено _.
Я нашел очень полезной эту главу книги Symfony Admin Generator
Надеюсь, это поможет, и извините за мой английский.