ActiveRecord : Utilitaires
Accesseurs et mutateurs personnalisés
Accesseur
class User extends ActiveRecord {
protected function getLastname() {
return ucfirst( $this->attributes['lastname'] );
}
}
$user = User::findOne( ['username' => 'jon'] );
echo $user->lastname; //Smith
Mutateur
class User extends ActiveRecord {
protected function setLastname( $value ) {
$this->attributes['lastname'] = strtolower( $value );
}
}
$user = User::findOne( ['username' => 'jon'] );
$user->lastname = 'Smith'; //lastname = smith
Définition d'un attribut virtuel
class User extends ActiveRecord {
protected function getFullname() {
return $this->firstname . ' ' . $this->lastname;
}
}
$user = User::findOne( ['username' => 'jon'] );
$user->firstname = 'John';
$user->lastname = 'Smith';
echo $user->fullname; //John Smith
Incrémentation et décrémentation d'un attribut
La méthode increment()
initialise la valeur de l'attribut à
0 si elle est à null
et l'augmente de la valeur passée en second
paramètre (1 par défaut) puis effectue la mise à jour dans la base de
données. Les validations sont ignorées.
$post = Post::findOne( 1 );
$post->increment( 'view_count' );
La requête SQL suivante est exécutée :
UPDATE `post` SET `view_count` = `view_count` + '1' WHERE `post_id` = '1';
$player = Player::findOne( 1 );
echo $player->points; //50
$player->increment( 'points', 100 );
echo $player->points; //150
La méthode decrement()
initialise la valeur de l'attribut à
0 si elle est à null
et la diminue de la valeur passée en second
paramètre (1 par défaut) puis effectue la mise à jour dans la base de
données. Les validations sont ignorées.
$post = Post::findOne( 1 );
$post->decrement( 'view_count' );
La requête SQL suivante est exécutée :
UPDATE `post` SET `view_count` = `view_count` - '1' WHERE `post_id` = '1';
Inversion de la valeur d'un booléen
La méthode toggle()
permet d'inverser la valeur d'un attribut
booléen. Les validations sont ignorées.
$user = User::findOne( ['username' => 'jon' ] );
$user->toggle( 'is_active' );
echo $user->is_active;
Suppression d'un attribut
L'appel de la fonction PHP unset
permet de supprimer un attribut
de la liste des attributs de l'objet :
unset( $user->password );