Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Верификация ассоциаций

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
dedmusos

цитировать



Зарегистрирован: 08 Янв 2008 22:37:19
Сообщения: 8

СообщениеДобавлено: 03 Сен 2008 17:39:10    Заголовок сообщения: Верификация ассоциаций Ответить с цитатой

Господа, представим, что у нас есть две модели - Topic и Message.
База построена так

topics {id,title}
messages{id,date,text,topic_id}

Между моделями ассоциация Topic hasMany к Message.
Задача - добавить новый топик (с сообщением, естественно) в базу данных.

Контроллер Topica выглядит вот так:

if(!empty($this->data)) {

$this->Topic->save($this->data);

$this->data['Message']['lab_topic_id'] = $this->Topic->getLastInsertId();

$this->Topic->Message->save($this->data);

}

То есть, сначала мы сохраняем данные о топике в таблицу topic, а потом, после того, как получили ID сохраненного топика, сохраняем сообщение с атрибутом принадлежности к топику. Казалось бы - простая ситуация. Однако, встал вопрос о верификации данных.
В модели topic я добавил в массив верификации title топика, а в модели message, соответственно, text месседжа. Естественно, что при сохранении, если не указать тело сообщения, он выдает ошибку, мол тело сообщения отсутствует, однако заголовок в соответствующую таблицу, верификация которой идет первой, добавляет. То есть здесь отсутствует напрочь ассоциативная связь при верификации данных. Можно, конечно, в теле контроллера проверять, что передано, а что нет, но это не изящно.

Резюме. Прошу подсказать, как мне верифицировать ассоциированные данные, чтобы была сохранена целостность.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 04 Сен 2008 16:29:13    Заголовок сообщения: Ответить с цитатой

Проверять лучьге в самой модели..
Если у вас 1.2 то возможностей море..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dedmusos

цитировать



Зарегистрирован: 08 Янв 2008 22:37:19
Сообщения: 8

СообщениеДобавлено: 04 Сен 2008 18:34:06    Заголовок сообщения: Ответить с цитатой

DeeperMD
Будьте добры, чуть подробнее расскажите об этом, если Вас не затруднит. Мне просто очень важно как можно скорее разобраться с этим и перейти к следующим шагам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 04 Сен 2008 18:39:08    Заголовок сообщения: Ответить с цитатой

Пирожек версии 1.2 (и 1.1 тоже имеет но меньше) встроенную верификацию данных внутри самой модели. (думаю вы об этом знаете).

http://bakery.cakephp.org/articles/view/multiple-rules-of-validation-per-field-in-cakephp-1-2

Если настроить для каждой модели по этому примеру валидацию то будет проверяться все поля всех моделей у которых запушен метод сохранению или валидации Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru