Я работаю с symfony.
у меня в блоге есть форма добавления поста. В этот пост входит поле cid - номер организации в которой состоит данный пользователь. Это поле программа заполняет сама, узнавая по сессии к какой организации принадлежит текущий пользователь. Но оно выглядит некрасиво. Поэтому я его пытаюсь убрать из виду, это поле. Для этого я пишу unset($this['cid']); в файле формы. Но тогда когда пользователь сабмитит пост, то в базу это поле не записывается. Что делать?
Вот код создания нового поста
public function executeNew(sfWebRequest $request)
{
$post = new Article();
$post->setCid($_SESSION ['symfony/company_id']);
$this->form = new ArticleForm($post);
}
Спустя 6 минут, 22 секунды (25.05.2009 - 18:30) Grazor написал(а):
ну если я правильно понял, то Вы копаете не в ту строну. сам id пусть записывается, его просто не нужно выводить, то есть надо смотреть код вывода поста и просто убрать оттуда выод этого id
Спустя 11 минут, 29 секунд (25.05.2009 - 18:41) program90 написал(а):
Дело в том что работа с формами в symfony автоматическая. Т.е. раскопать где именно выводится и формируется форма - неизвестно как. Скорее всего она все равно будет выводить в форму все столцы таблицы поста из базы. Т.е. изменить это в коде невозможно.
Спустя 24 минуты, 11 секунд (25.05.2009 - 19:05) jetistyum написал(а):
Изменить в коде возможно все. Код то открытый, другой вопрос, что, возможно это не предполагает изменения.
Возможно Вы не верно Пользуетесь конструктором форм. Есть же куча декораторов.
возможно тип поля нужно назначить - скрытый... у меня нет опыта работы с symfony, но на сколько я знаю, там все решается. Вам стоит подробнее изучить документацию по работе с формами.
Возможно Вы не верно Пользуетесь конструктором форм. Есть же куча декораторов.
возможно тип поля нужно назначить - скрытый... у меня нет опыта работы с symfony, но на сколько я знаю, там все решается. Вам стоит подробнее изучить документацию по работе с формами.
Спустя 5 минут, 18 секунд (25.05.2009 - 19:11) program90 написал(а):
Проблема в том что там везде решается такой вопрос именно так - делается unset. И на хабрахабре.ру так делают. А у меня почему-то не работает. Почему никак не могу понять.
Спустя 2 часа, 16 минут, 2 секунды (25.05.2009 - 21:27) Grazor написал(а):
Цитата (program90 @ 25.05.2009 - 18:23) |
Но тогда когда пользователь сабмитит пост, то в базу это поле не записывается |
то есть поле обязательно должно быть заполнено, а когда пользователь отправляет пост, ему выдаётся ошибка?
ошибка ли?
unset просто удаляет соответствующую переменную или элемент массива, то есть поле будет пустым
Спустя 4 часа, 17 минут, 32 секунды (26.05.2009 - 01:44) program90 написал(а):
Цитата (Grazor @ 25.05.2009 - 18:27) | ||
то есть поле обязательно должно быть заполнено, а когда пользователь отправляет пост, ему выдаётся ошибка? ошибка ли? unset просто удаляет соответствующую переменную или элемент массива, то есть поле будет пустым |
Это поле заполняется скриптом. туда ставится номер компании к которой принадлежит человек. если я не делаю unset - то просто в форме нового поста появляется поле cid с номером, скажем, 1. И тогда пользователь нажав сабмит успешно записывает эту единицу в базу. Но когда я убираю unset'ом это поле из виду, тогда эта единица в базу не записывается. Туда пишется NULL.
Например, поле created_at, дата, - точно также убирается из вида формы поста unset'ом, но почему-то записывается в базу правильно - дата нового поста. А вот cid не пишется.
Что тут можно сделать?...