sfDoctrineGuardPlugin и фильтры администратора - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть администратор, который использует sfDoctrineGuardPlugin. У меня также есть другая таблица, sf_guard_user_profile, которая расширяет таблицу sf_guard_user, чтобы включить в нее дополнительные поля, такие как адрес, возраст и т. Д.

Моя проблема в том, что я встраиваю информацию профиля (sf_guard_user_profile) в запись sf_guard_user при просмотре записей в модуле, созданном администратором. Это отлично работает, но я бы хотел использовать некоторые фильтры из таблицы sf_guard_user_profile.

Я пытался добавить их в файл generator.yml, но выдает ошибку

generator.yml

...................

  filter:
    display: [username, email_address, address_1, is_active ]

Widget "address_1" does not exist.

address_1 - это поле в sf_guard_user_profile

Возможно ли это сделать?

Спасибо

1 Ответ

0 голосов
/ 27 сентября 2011

Хорошо, мне пришлось немного поработать в классе sfGuardUserFormFilter,

  $this->widgetSchema['age'] =  new sfWidgetFormInputText(array(
      'label' => 'Age'
  ));

  //Type of validator for filter
  $this->validatorSchema['age'] = new sfValidatorPass(array ('required' => false));

public function getFields()
{
  $fields = parent::getFields();
  $fields['age'] = 'age';
  return $fields;
}


public function addAgeColumnQuery($query, $field, $value)
{
     $rootAlias = $query->getRootAlias();

     $query->where('p.age LIKE ?', '%'.$value.'%');

     //remember to return the $query!
     return $query;
}

Затем я могу использовать поле age в файле generator.yml.

Спасибо

...