Cakephp 2.x: валидация isUnique для двух полей вместе

1

У меня есть модель, состоящая из 3 полей, ID, Language, имени Filename. Как я могу предотвратить сохранение новой записи, если есть существующая запись с тем же Filename и Language. Например

1. ID: 0001    Language: EN     Filename:Test.pdf

Если я попытаюсь добавить еще одну запись с Language EN и Filename Test.pdf, чтобы показать ошибку. Я хочу сделать это в модели. Имейте в виду, что я новичок в CakePHP.

Теги:
cakephp
cakephp-2.0
cakephp-2.x

1 ответ

1

Добавьте правило в массив $ validate в вашей модели:

public $validate = array(
   'Filename' => array(
        'rule' => array('isUnique', array('Language', 'Filename'), false),
        'message' => 'The File already exists in the specified Language ',
        'required' => 'create'
    )
);

Из документации CakePHP 2.x.

  • 0
    Это правило корректно работает при добавлении, но по какой-то причине каждый раз, когда я пытаюсь редактировать существующую запись, при сбое всегда происходит сбой. Если я удаляю вышеупомянутое правило, тогда все в порядке.
  • 0
    Я обновил ответ так, что правило применяется только при добавлении новых записей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню