HABTM формируют проверку в CakePHP

У меня есть таблица Projects и таблица Users, которые связаны отношением HABTM. В "добавлении" новой страницы Project у меня есть несколько раздел флажка для выбора Пользователей для нового проекта. Я хочу иметь по крайней мере одного Пользователя для Проекта. Что лучший способ состоит в том, чтобы приблизиться к этому в CakePHP?

5
задан Sabourinov 11 January 2010 в 18:52
поделиться

2 ответа

Попробовать это:

// app/models/project.php
/**
 * An additional validation check to ensure at least one User is
 * selected. Spoofs Cake into thinking that there are validation
 * errors on the Project model by invalidating a non-existent field
 * on the Project model, then also invalidates the habtm field as
 * well, so when the form is re-displayed, the error is displayed
 * on the User field.
 **/
function beforeValidate() {
  if (!isset($this->data['User']['User'])
  || empty($this->data['User']['User'])) {
    $this->invalidate('non_existent_field'); // fake validation error on Project
    $this->User->invalidate('User', 'Please select at least one user');
  }
  return true;
}
19
ответ дан 18 December 2019 в 05:18
поделиться

Блог Teknoid имеет довольно глубокое решение для вашей проблемы здесь. Наиболее Cakey Pote для этого будет добавить пользовательскую проверку в вашу модель, поскольку вы упоминаете на своем комментарии выше. Проверьте http://teknoid.wordpress.com/2008/10/16/how-to-validate-habtm-data/

Из статьи, где Tag habtm post (:: project habtm):

Во-первых, мы подтверждаем модель тега по используя данные из формы для обеспечения что хотя бы одна тег была выбрана. Если Итак, мы сохраняем пост и соответствующие Теги.

2
ответ дан 18 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: