[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает поле
program90
Привет,
Я работаю с 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, но на сколько я знаю, там все решается. Вам стоит подробнее изучить документацию по работе с формами. smile.gif

Спустя 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)
Цитата (program90 @ 25.05.2009 - 18:23)
Но тогда когда пользователь сабмитит пост, то в базу это поле не записывается

то есть поле обязательно должно быть заполнено, а когда пользователь отправляет пост, ему выдаётся ошибка?

ошибка ли?
unset просто удаляет соответствующую переменную или элемент массива, то есть поле будет пустым

Это поле заполняется скриптом. туда ставится номер компании к которой принадлежит человек. если я не делаю unset - то просто в форме нового поста появляется поле cid с номером, скажем, 1. И тогда пользователь нажав сабмит успешно записывает эту единицу в базу. Но когда я убираю unset'ом это поле из виду, тогда эта единица в базу не записывается. Туда пишется NULL.
Например, поле created_at, дата, - точно также убирается из вида формы поста unset'ом, но почему-то записывается в базу правильно - дата нового поста. А вот cid не пишется.
Что тут можно сделать?...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.