Я установил плагин sfDoctrineGuard
. Все работает, я могу использовать страницу / sf_guard_user / edit /: id для редактирования пользователя.
Мне не понравилось, как разрешения были перечислены в списке выбора, я хотел отобразить их как отдельные флажки, разделенные по имени разрешения. Для этого я создал собственный виджет, который расширяет sfWidgetFormChoice
. Это работает так, как я хочу, но моя проблема заключается в следующем:
Чтобы использовать мой пользовательский виджет, я отредактировал следующие строки в этом файле:
lib/form/doctrine/sfDoctrineGuardPlugin/base/BasesfGuardUserForm.class.php
До:
'groups_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'sfGuardGroup')),
'permissions_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'sfGuardPermission')),
После того, как:
'groups_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'sfGuardGroup', 'expanded' => true)),
'permissions_list' => new myCustomPermissionWidget(),
Это дает правильный результат.
Проблема в том, что я не должен был редактировать базовый класс, так как каждый раз, когда я строю свою модель, файл перезаписывается.
Итак, я должен отредактировать этот файл:
lib/form/doctrine/sfDoctrineGuardPlugin/sfGuardUserForm.class.php
class sfGuardUserForm extends PluginsfGuardUserForm
{
public function configure()
{
parent::configure();
$this->setWidgets(array(
'groups_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'sfGuardGroup', 'expanded' => true)),
'permissions_list' => new myCustomPermissionWidget(),
));
}
}
Но это не работает. Я пробовал код внутри новой функции setup (), с parent :: setup () до и после моего кода, но все еще ничего.
PluginsfGuardUserForm является абстрактным и расширяет BasesfGuardUserForm, но я не понимаю, почему это остановит его работу.
Есть идеи?
Спасибо