Home > PHP, Webdev > CakePhp, inserire metodi nel modello

CakePhp, inserire metodi nel modello

A volte per raggruppare operazioni comuni o per coerenza con l’mvc può essere utile aggiungere dei metodi in un modello, come fare è molto semplice e questo esempio dovrebbe bastare.

<?php
class Modello extends AppModel {
	var $name = 'Modello';
	var $primaryKey = 'id';
	// Ecc ecc

	/**
	* Il nostro metodo
	*/
	function laNostraFunzione(){
		// Si riferisce a questo modello con this, quindi per fare una query:
		return $this->find('all');
	}
}
?>


Il metodo nell’esempio appena mostrato può essere utilizzato in un controller come segue:

$var = $this->Modello->laNostraFunzione();

Metodi nel modello possono anche servire ad esempio per controlli sui dati, supponiamo di voler creare un form di registrazione nel quale accettiamo indirizzi email solo di alcuni provider.
Cerchiamo di non confondere il modello con il behavior, evitate quindi di inserire impropriamente della logica nel modello.
In questo esempio vi mostro come aggiungere una nuova regola di validazione per un campo.
Ovviamente dove si possono utilizzare espressioni regolari basta fare in questo modo

var $validate = array(
    'nomeUtente' => array(
        'rule' => '/^[a-z0-9_]{5,}$/i',
        'message' => 'Il nome utente può contenere solo numeri, lettere minuscole e _ per minimo 5 caratteri.'
    )
);


ma andiamo avanti
var $validate = array(
     'nomeUtente' => array(
            'rule' => array('nuovaRegola', 'parametro'),
            'message' => 'Il nome utente bla bla bla.'
     )
);

function nuovaRegola($array, $valore){
	// $array vale array('nuovaRegola', 'parametro')
	// $valore vale 'parametro', nessuno vi vieta di usare un array al posto di una stringa</pre>

// logica della funzione e return true o false
}

Categorie:PHP, Webdev Tag: , ,