2011-07-03 3 views
0

cakephpフレームワークでmysqlがバックエンドになっています。product_idを手動で追加するためのフォームを開発しています。他の検証ルールのために働くfield.Itのproduct_idが空いていないため、つまり、numeric.But独自の検証rule.Hereのために働いていないため、モデルの私の検証コードです:cakephpの一意性のためにプライマリキーフィールドの妥当性が確認されていない

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'))); 

私が指摘することはできませんでしエラーの場所。

+0

あなたのアレイフォーマットが完全に台無しになっているようです。それを少し書式設定して、開きかっこを数えてみてください。 – deceze

+0

投稿に加えて、真の主キーはすでにユニークで、自動インクリメントされているので、これは必要ではありません。 – Ross

答えて

3

は、それはすべきではない:

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

あなたはnumericと呼ばれるフィールドを検証しようとしていますか?

product_idは、product_idを使って、productsテーブル内の別のレコードに関連するように聞こえますが、自動的にCakeで処理されます。

固有のコード(内部参照番号など)を入力する場合は、発生する可能性のある問題や他のCakeデベロッパーとの混乱を避けるために、フィールドをケーキライクなものに変更することを検討してください。

+0

:ありがとうございます。それはコピー、ペーストミスです。コピー中にproduct_idが見つかりません。まだ一意性は検証されていませんか? – pushpa

+0

別のフィールドで試してみてください。私の推測では、本質的に既にユニークでなければならないものに対して 'isUnique'を検証しようとしているのですから、おそらくCakeはそれを無視しています。データ型とは何ですか? – Ross

+0

データ型は整数です。私はisUnique検証ルールを削除しようとしましたが、以前のレコードが上書きされています。 – pushpa

関連する問題