Поле первичного ключа не проверяется на уникальность в CakePHP - PullRequest
0 голосов
/ 03 июля 2011

Я работаю над платформой cakephp, где mysql является back-end. Я разрабатываю форму для ввода сведений о продукте, где product_id должен быть добавлен вручную. Я написал правила проверки для поля product_id. Это работает для других правил проверки, т.е.не пустой, числовой. Но не работает для уникального правила проверки. Вот мой код проверки в модели:

var $validate= array(product_id=>
                                  'numeric'=> array('rule'=>'numeric',
                  'on'=>'create',
                  'message'=>'Please enter only numbers'),
                                  'isUnique' => array('rule' => 'isUnique',
                        message' => 'This product_id already exist'),

                 'notEmpty'=> array('rule' => 'notEmpty',
                        message' => 'Please enter the product id')),

            'product_name' => array('notEmpty'=> array(
                                    'rule' => 'notEmpty',
                                    'message' => 'Please enter the product name')));

Я не смог указать место ошибки.

1 Ответ

3 голосов
/ 03 июля 2011

Не должно ли быть:

var $validate= array('product_id'=> array('rule'=>'numeric',
                    'on'=>'create',
                     //etc

В противном случае вы пытаетесь проверить поле с именем numeric?

Кроме того, хотя я не знаю, как функционирует ваше приложение, использование product_id звучит так, как будто оно должно относиться к другой записи в таблице products, которая будет автоматически обрабатываться с Cake, то есть при выборе.

Если вы вводите уникальный код (например, внутренний ссылочный номер), попробуйте переименовать поле во что-то менее похожее на Cake, чтобы избежать любых проблем, которые могут возникнуть, или путаницы с другим разработчиком Cake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...