Méthodes et Propriétés supplémentaires
Bien que les fonctions de model de CakePHP devraient vous emmener là où vous
souhaitez aller, n’oubliez pas que les classes de models ne sont rien de plus
que cela : des classes qui vous permettent d’écrire vos propres méthodes ou de
définir vos propres propriétés.
N’importe quelle opération qui prend en charge la sauvegarde ou la restitution
de données est mieux située dans vos classes de model. Ce concept est souvent
appelé fat model (« model gras »).
class Exemple extends AppModel {
public function getRecent() {
$conditions = array(
'created BETWEEN (curdate() - interval 7 day) and (curdate() - interval 0 day))'
);
return $this->find('all', compact('conditions'));
}
}
Cette méthode getRecent()
peut maintenant être utilisée dans le controller.
$recent = $this->Exemple->getRecent();
Model::associations()
Obtenir les associations:
$result = $this->Exemple->associations();
// $result équivaut à array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')
Model::buildQuery(string $type = 'first', array $query = array())
Construit la requête tableau qui est utilisée par la source de données pour
générer la requête pour récupérer les données.
Model::deconstruct(string $field, mixed $data)
Déconstruit un type de données complexe (tableau ou objet) dans une valeur de
champ unique.
Model::escapeField(string $field = null, string $alias = null)
Echappe le nom du champ et ajoute le nom du model. L’échappement est fait en
fonction des règles du driver de la base de données courante.
Model::exists($id)
Retourne true si l’enregistrement avec un ID particulier existe.
Si l’ID n’est pas fourni, elle appelle Model::getID()
pour obtenir
l’ID de l’enregistrement courant pour vérifier, et exécute ensuite un
Model::find('count')
sur la source de données actuellement configurée pour
vérifier l’existence de l’enregistrement dans un stockage persistant.
Note
Le Paramètre $id a été ajouté dans 2.1. Avant cela, elle ne prenait aucun
paramètre.
$this->Exemple->id = 9;
if ($this->Exemple->exists()) {
// ...
}
$exists = $this->Foo->exists(2);
Model::getAffectedRows()
Retourne le nombre de lignes affectées par la dernière requête.
Model::getAssociated(string $type = null)
Récupère tous les models avec lesquels ce model est associé.
Model::getColumnType(string $column)
Retourne le type de colonne d’une colonne du model.
Model::getColumnTypes()
Retourne un tableau associatif des noms de champs et des types de colonnes.
Model::getID(integer $list = 0)
Retourne l’ID de l’enregistrement courant.
Model::getInsertID()
Retourne l’ID du dernier enregistrement que ce model insère.
Model::getLastInsertID()
Alias pour getInsertID()
.