Yii Framework Forum: [SOLVED] errorSummary duplicata - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[SOLVED] errorSummary duplicata Rate Topic: -----

#1 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 22 February 2012 - 04:46 PM

Scenario:
View: CActiveForm con due fileField (che puntano ai due attributi del MODEL)
Model: CFormModel con due attributi: A_FileName, B_FileName

Nel Model ho due Rules():

return array(
	array('A_FileName, B_FileName', 'required'),	
	array('A_FileName, B_FileName', 'file', 'types'=>'dat')
),



Se effettuo il POST della mia form mettendo due file con estensione, ad esempio, .jpg, la errorSummary riporta correttamente due righe di errore:

Please fix the following input errors:
  • The file "prova.jpg" cannot be uploaded. Only files with these extensions are allowed: dat.
  • The file "test.jpg" cannot be uploaded. Only files with these extensions are allowed: da


Se invece effettuo il POST della form lasciando entrambi i fileField vuoti gli errori vengono duplicati:

Please fix the following input errors:
  • A_FileName cannot be blank.
  • A_FileName cannot be blank.
  • B_FileName cannot be blank.
  • B_FileName cannot be blank.



Se invece nelle Rules() commento la seconda riga
return array(
	array('A_FileName, B_FileName', 'required'),	
	//array('A_FileName, B_FileName', 'file', 'types'=>'dat')
),

e riprovo ad effettuare il test di POST con i fileField vuoti, il risultato della errorSummary è corretto, visualizza cioè solo due righe.

Avete qualche idea?

Grazie
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 22 February 2012 - 06:15 PM

Hai provato a mettere solo la seconda opzione?
0

#3 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 23 February 2012 - 03:06 AM

Ho appena provato commentando la prima Rule n questo modo:

return array(
        //array('A_FileName, B_FileName', 'required'),    
        array('A_FileName, B_FileName', 'file', 'types'=>'dat')
),


ed ho ottenuto il risultato aspettato.

Però non capisco perchè mi appplica la Rule required anche se non è specificata...
0

#4 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,341
  • Joined: 12-October 09
  • Location:Croatia

Posted 23 February 2012 - 03:16 AM

E perche il file validator e un po specifico... se lo study bene nel file validator che l'opzione "allowEmpty"... che si usa se non vuoi che il attributo qui usato sia "required"
Find more about me.... btw. Do you know your WAN IP?
0

#5 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 23 February 2012 - 03:39 AM

Ho risolto e, soprattutto, ho capito perchè venivano duplicati i $model->errors.

Ho reimpostato le Rules in questo modo:
public function rules()
{
   return array(
        array('A_FileName, B_FileName', 'file', 'types'=>'dat', 'allowEmpty'=>false),
   );
}


Grazie mdomba e sensorario per l'aiuto.
0

#6 User is offline   Giancarlo 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 242
  • Joined: 20-December 11
  • Location:Turin, Italy

Posted 05 March 2013 - 10:34 AM

Nel Model:CFormModel come li hai definiti i due attributi: A_FileName, B_FileName?
Per caso così:
class TuaClasse extends CActiveRecord
{
    public $A_FileName;
    public $B_FileName;
...
...
}

??

Te lo chiedo perché sto facendo qualcosa di simile, ma ho il problema che la view non visualizza il file postato in caso di errore di validazione.
In pratica, se ci sono errori di validazione, e quindi il form viene mostrato di nuovo all'utente precompilato con i dati appena inseriti, questo campo non viene 'precompilato'.

Ho anche inserito nelle rules del model:
array('A_FileName', 'safe'),
array('B_FileName', 'safe'),

Posted Image Non preoccuparti, è dentro il monitor!

Sapevi che cercando su google yii + "la funzione su cui stai impazzendo", trovi quasi sempre dei buoni indizi in italiano, per risolvere i tuoi problemi, senza perdere tempo a postare?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users