Я новичок, пытающийся создать простое (теоретически) приложение CRUD, используя symfony 1.4. Я пытаюсь использовать фильтры на своей странице индекса, чтобы пользователь мог выбирать записи, которые вы хотите просмотреть, а не весь список.
Я следовал инструкциям, которые нашел здесь http://www.michelsalib.com/2010/10/how-to-use-filters-on-custom-fields (хотя я не использую настраиваемые поля, только те, которые появляются в таблице и перечислены в классе Base--FormFilter
). Это прекрасно работает для всех моих полей, кроме того, которое является внешним ключом.
Когда я пытаюсь отфильтровать любое из этих значений, проверка завершается неудачно.
Виджет фильтра:
new sfWidgetFormDoctrineChoice(array(
'model' => $this->getRelatedModelName('EatLocations'),
'add_empty' => true))
и валидатор:
new sfValidatorDoctrineChoice(array(
'required' => false,
'model' => $this->getRelatedModelName('EatLocations'),
'column' => 'loc_abbrev')
Я думал, что проблема была в том, что валидатор указывал на неправильный столбец, но когда я установил 'column' => '' location_id '(столбец, на который указывает внешний ключ), я получил эту ошибку:
Вы должны определить метод "addEaUnitColumnQuery", чтобы иметь возможность фильтрации с полем "ea_unit".
Я видел несколько примеров того, как написать этот метод, но они кажутся слишком сложными, и я не уверен, как применить это к моей таблице. Кто-нибудь знает, есть ли более простой способ решить эту проблему?