#php #symfony1 #symfony-forms
#php #symfony1 #symfony-forms
Вопрос:
у меня есть простая форма: UserInfoForm()
. когда я впервые показываю форму пользователю, я хочу, чтобы она была заполнена данными из определенного объекта User
модели. кто-нибудь может дать мне направление или пример? Спасибо!
Комментарии:
1. Что расширяют классы UserInfoForm и User?
2. UserInfoForm расширяет sfForm, а User — это модель doctrine. я ищу решение, подобное тому, которое дал мне Том, но я получаю сообщение об ошибке (прочитайте мой комментарий к его сообщению). Спасибо!
Ответ №1:
Обычно вы делаете это следующим образом, но это зависит от того, как ваша UserInfoForm связана с объектом User:
$user = Doctrine::getTable('User')->findOneById($user_id);
$this->form = new UserInfoForm($user);
Редактировать: Я предполагаю, что вы используете Doctrine.
Комментарии:
1. я попробовал это, но затем я получаю: Неизвестное свойство записи / связанный компонент «_csrf_token» в «User». похоже, что он ищет столбец _csrf_token в User. как мне «сообщить» форме, что поле csrf не является столбцом в User?
2. Хм … это странно, этого не должно было происходить. Вы отображаете токен в шаблоне только с помощью «<?php echo $form[‘_csrf_token’]-> render() ?>» или вы делаете с ним что-то еще?
3. Если проблема не устранена, возможно, вы могли бы попробовать объявить соответствующие поля в классе form: «$this->useFields(array(‘field1’, ‘field2’, ‘field3’));»
4. … а также, судя по приведенному выше комментарию, который вы сделали, вам необходимо убедиться, что «класс UserInfoForm расширяет BaseUserForm» в объявлении класса вашей формы.
5. я не хочу, чтобы UserInfoForm расширял BaseUserForm, потому что я хочу создать класс form с нуля, а не перегружать BaseUserForm .. кроме того, я получаю ошибку из части действия, а не из шаблона. я даже не отображаю форму в шаблоне, и я все еще получаю ошибку .. это потому, что UserInfoForm расширяет sfForm, а не BaseUserForm?