У меня небольшая проблема с embedForm
, использующим доктрину и SF1.4
Я создал модуль, который пользователь может редактировать / создавать / удалять пользователей из определенной группы, используя sfDoctrineGuard
Форма - это просто пользовательская форма с именем manufacturerForm.class.php
, которая расширяется sfGuardUserAdminForm
class manaufacturerForm extends sfGuardUserAdminForm
{
public function configure()
{
$form = new sfGuardUserProfileForm();
$this->embedForm('profile', $form);
unset($this['firstname'], //this field is in sfGuardUserProfile is shown in form
$this['user_id'], //this field is in sfGuardUserProfile is shown in form
$this['is_super_admin'], //this field is in sfGuardUser is not shown
$this['is_admin'], // this filed is in sfGuardUser is not shown
$this['permissions_list'], //this field is in sfGuardUser is not shown
$this['groups_list']);//this field is in sfGuardUser is not shown
}
}
Вы можете видеть, что я встраиваю sfGuardUserProfileForm
в мой manufacturerForm
.
У меня 2 проблемы, в sfGuardUserProfile
есть поля, которые я не хочу отображать для этой конкретной формы, такие как:
firstname, lastname, email_new, created_at, updated_at
, но я не могу сбросить их, поскольку они все еще отображаются.
Обратите внимание, что в этом модуле администратора нет файла generator.yml
. Я делаю все это в editSuccess.php
и использую _form.php
частичное.
Моя другая проблема - когда я редактирую существующего пользователя и сохраняю все хорошо. Проблема возникает, когда я пытаюсь редактировать, как я получаю следующее:
An object with the same "user_id" already exist.
- это для поля user_id
в sfGuardUserProfile, то же самое относится и к полю email_new
. Я получаю An object with the same "email_new" already exist.
1) Как убрать ненужные поля?
2) Нужно ли перезаписывать какие-либо методы doSave (), updateObject (), saveEmbeddedForms (), чтобы остановить последнюю проблему?
Спасибо