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 );