ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp3.2.3 フォーム検証固有のエラー レポート

thinkphp3.2.3 フォーム検証固有のエラー レポート

WBOY
WBOYオリジナル
2016-06-20 12:47:141269ブラウズ

protected $_validate = array(    // array(field,rule,message,condition,type,when,params)        // 1 用户不能为空,唯一,至少4个字符        array('username', '', '用户名已存在', 0, 'unique'),    );

フォームに同じ名前を入力して SQLSTATE[23000]: 整合性制約違反: 1062 キー 'PRIMARY' のエントリ '100' が重複しています
データベース内の同じ名前の場所、エラー情報を出力する代わりに。これの何が問題なのでしょうか?


ディスカッションへの返信 (解決策)

エラー メッセージ: 整合性制約違反: 1062 キー 'PRIMARY のエントリ '100' が重複しています'
これは整数の主キー フィールドです。そして、文字列「100」を指定しました。何が起こっているのか

主キー ID100 の行のユーザー名は同じ入力です
そしてエラーがあります
すべてのエラー メッセージは不正なデータ オブジェクトを報告します。

コントローラーでフォームを処理するコードを投稿してください

コントローラーでフォームを処理するコードのロジックが間違っています
$user = new ModelUserModel() ;

if (!empty($_POST)) {
$_POST['user_hobby'] = implode(',', $_POST['user_hobby']); / create メソッドはフォーム情報を収集して返し、自動フォーム検証をトリガーします
$data = $user->create() // モデル設定 $_validate // 自動データ検証が設定されている場合、データ検証が実行されます
if ($user-& gt; add ($ data)) {
Echo 'データ追加成功';
} else {
dump ($ user-& gt; geterror ()); 🎜>}
} else {
$this->display();
}
}

if ($data) {
> { ($data);
問題ありません。
しかし、なぜこのようなことが起こっているのでしょうか?


$data を出力して、テーブル構造を確認してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。