シナリオ「作成」で Yii で新しい投稿を作成すると、「短い説明」と「詳細な説明」の 2 つのフィールドがあるため、最初に [保存] をクリックすると、「短い説明を空白にすることはできません」というエラー メッセージが表示されます。投稿は保存されません。2番目にクリックすると、投稿が保存されます。どうすれば修正できますか?
PS私は最初のクリックでルール投稿保存からこのフィールドを削除しています。
array('title, price, short_description, long_description, store, in_stock', 'required', 'on'=>'general, create'),
ありがとう!
これは、テキストエリアに拡張機能を使用しているために発生しました
'short_description'=>array(
'type'=>'textarea',
'cols'=>50,
'rows'=>10,
),
'long_description'=>array(
'type'=>'textarea',
'cols'=>50,
'rows'=>14,
),
テキストエリアをテキストフィールドに置き換えると、すべてうまくいきます。
しかし、私はそれを修正する必要があります。
public function rules()
{
return array(
array('title, price, short_description, long_description, store, in_stock', 'required', 'on'=>'general, create'),
array('short_description', 'length', 'encoding' => 'UTF-8', 'max'=>256),
array('product_number, weight', 'safe', 'on'=>'general, create'),
array('price, in_stock', 'numerical', 'on'=>'general, create'),
array('price', 'numerical', 'integerOnly' => FALSE, 'min' => '0', 'on'=>'general, create'),
array('in_stock', 'numerical', 'integerOnly' => FALSE, 'min' => '0', 'on'=>'general, create'),
array('store','trialCreate','on'=>'create'),
array('status', 'safe', 'on'=>'create'),
array('meta_description, meta_keywords', 'safe', 'on'=>'meta'),
array('currentImage', 'safe', 'on'=>'image'),
array('newImage', 'file', 'allowEmpty'=>false, 'safe'=>true, 'types'=>'png, jpg, jpeg, gif', 'on'=>'image'),
array('categoryIDs', 'validateCategories', 'on'=>'categories'),
array('status', 'required', 'on'=>'status'),
array('store', 'safe', 'on'=>'search'),
);
}
コントローラーを入れるのは簡単ではありません。
だから、私は私のためにこの方法を使用しています。必須のルールからフィールドを削除し、独自のルールを作成しました。
array('short_description, long_description', 'validateDescription', 'on'=>'general, create'),
/**
*
*/
public function validateDescription()
{
if($this->long_description=="")
{
$this->addError('long_description', 'Long Description cannot be blank.');
}
if($this->short_description=="")
{
$this->addError('short_description', 'Short Description cannot be blank.');
}
}
そして今、クライアント側で検証を作成する必要があります。ご清聴ありがとうございました!