La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 7 ]

ToX

Topic: [1.2] Validazione Avanzata

mi sono impostato il mio bel modello perchè mi faccia un controllo su alcuni campi, e per l'inserimento funziona perfettamente.

il problema è quando devo fare le modifiche, visto che alcuni di quei campi non devono essere toccati... ma nelle regole di validazione sono presenti, quindi ovviamente mi dice che quei campi non sono validi.

come faccio a gestire questa situazione? cioè escludere quei campi dalla validazione, quando effettuo determinate operazioni?

Saiborg

Re: [1.2] Validazione Avanzata

Mmmm forse puoi:

- usare saveField sui campi che ti servono (di default non valida)

Model::saveField($name,
                     $value,
                     $validate = false)

- usare il save senza validazione, quindi secondo parametro settato a false

Model::save($data,
                     $validate = true,
                     $fieldList = array() )

- provare a usare il terzo parametro di save: $fieldList, che non ho idea di come si comporti. Nella pagina delle API dice solo "$fieldList List of fields to allow to be written"

zuck

Re: [1.2] Validazione Avanzata

Basta usare la clausola on nella dichiarazione delle regole di validazione (in questo modo la regola è valida solo o in creazione o modifica), oppure ti crei un metodo personalizzato di validazione che tiene conto dell'azione corrente per la quale viene fatta la validazione (tramite una variabile di stato interna).

Last edited by zuck (05-04-2008 09:14:15)

ToX

Re: [1.2] Validazione Avanzata

intanto grazie, però non vi offendete, ma non è che ho capito molto come funziona il tutto :p

il comando savefield sembrerebbe comodo però non fa al caso mio (ho da salvare tutti i campi di una tabella, tranne uno)
ora provo a guardare $fieldList.

zuck il tuo consiglio sembra interessante ma non ho capito proprio come funziona... se non sbaglio posso mettere, da qualche parte del modello, che la validazione X deve essere eseguita solo in alcuni casi... sarebbe una figata, hai qualche link che ne spiega il funzionamento?

zuck

Re: [1.2] Validazione Avanzata

Fa parte del nuovo sistema di validazione della 1.2...Il funzionamento è semplice, basta dichiarare una regola nel seguente modo:

campo_xxx => array('rule' => array(...),
                            'on' => 'created'
                    );

In questo modo la regola viene applicata solo durante la creazione. Se invece imposti "modified" la regola di validazione verrà usata solo in fase di modifica. Guarda l'API delle 1.2 (e il cookbook nella sezione relativa al sistema di validazione, sempre della 1.2).

smile

ToX

Re: [1.2] Validazione Avanzata

ah ok... non è male anche se speravo in qualcosa di meglio (tipo che fosse possibile i mpostare la validazione in base all'azione) :p

Namaless

Re: [1.2] Validazione Avanzata

ToX wrote:

ah ok... non è male anche se speravo in qualcosa di meglio (tipo che fosse possibile i mpostare la validazione in base all'azione) :p

Visto il buon consiglio ricevuto sticko la discussione smile

Per quanto riguarda la validazione è stata molto potenziata nella 1.2, praticamente puoi gestire tutto in automatico smile

Posts [ 7 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

1 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.049 seconds, 10 queries executed ]