ホームページ  >  記事  >  バックエンド開発  >  Yii フレームワークのデータ型の変更

Yii フレームワークのデータ型の変更

WBOY
WBOYオリジナル
2016-06-13 13:26:04805ブラウズ

Yii フレームワークがデータ型
を変更する前は、YII のツール GII を使用してモデル、コントローラー、ビュー、その他のレイヤーを生成するデータベース内に数値フィールドがありました。その後、プロジェクトの要件により、数値を文字列に変更する必要があったため、データベースの数値型を文字型 (char 型) に変更しました。次に、モデル層の rules() メソッドの下の配列を array('AA,BB, ', 'numeric'),

に変更します:

array('AA,BB') , 'length','max'=>20),

最後にキャラクター改善データを入力したときに、次のエラーが発生しました:

CDbException
列名は a である必要があります。文字列または配列

D:web_rootrd1039bframeworkdbschemaCDbCommandBuilder.php(701)

689 }
690 if(count($values)===1)
691 {
692 $entries=array();
693 foreach($values[0] as $name=>$value)
694 $entries[]=$prefix.$table->columns[$name]- > ;rawName.($value===null?' IS NULL':'='.$value);
695 return implode(' AND ',$entries);
696 }
697
698 return $this->createCompositeInCondition($table,$values,$prefix);
699 }
700 else
701 throw new CDbException(Yii::t('yii','Column name は文字列または配列でなければなりません。'));
702 }
....
....
....
.. ..
....
CActiveRecord->save()
249 }
250
251
252 if (Yii::app()->user ;user ->ROLE==STUDY_USER_ROLE_PI){
253 $model->ENTRY2WHO= Yii::app()->user->USERNAME;
254 if ($model->save( ))
255 {
256 if($SORT!=3){
257 $this->ToDo($Name,$MH1,$keyid);
258 }
259 else
....
.....
....
....
.
すみません、専門家の方、これは何が原因ですか?助けてください、ありがとう! !

-----解決策---------
690 if(count($values)===1) ここで、$values が array('AA,BB','length','max'=>20) である場合、count($values) = ==1 は偽ですよね?
------解決策------------------
特定のエラーを確認できません。

rules() を削除できます。試してみます、いいですか?機能する場合は、 rules() メソッドに問題があることを意味します。うまくいかない場合は、どこか別の場所に間違って書かれているということです。

ルールの簡単な例
public function rules()
{
return array(
array('name,email', 'length','max'=>6 ),
);
}

これはルールの特定のリストです
http://blog.csdn.net/mengxiangbaidu/article/details/7002850

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