Boris Guéry

Hacking the web since 1997.

addAttributeToFilter() Aide-mémoire Des Options

La méthode addAttributeToFilter() permet de filtrer une collection à partir de condition appliquer aux attributs. Concrètement, cela permet de réduire à partir d’une date donnée, d’une quantité, ou tout autre attribut que vous avez créé manuellement.

Cet article a avant tout l’objectif d’être un aide-mémoire.

Les conditions :

CodeSQLDescription
eq=égal à
neq!=différent de
likeLIKEsimilaire à
nlikeNOT LIKEnon similaire à
ininprésent dans
nin=non présent dans
notnull=nul
null=non nul
gt=supérieur à
gteq=supérieur ou égal à
lt=inférieur à
lteq=inférieur ou égal à
from=à partir de
to=jusqu’à
date=Active la conversion vers le type DATE
datetime=Active la conversion vers le type DATETIME

Utilisation :

Par défaut, la méthode addAttributeToFilter utilise la condition d’égalité pour comparer l’attribut : $collection->addAttributeToFilter('entity_id', 3);

Pour comparer un attribut à plusieurs valeurs et selon différentes conditions, vous devez fournir un array ayant pour clé l’opérateur et pour valeur, la valeur à comparer :

1
2
3
4
5
6
7
8
$collection->addAttributeToFilter(
    'created_at',
    array(
        'from' => '21 August 1984',
        'to' => '21 August 2010',
        'date' => true,
    )
);

Pour filtrer plusieurs attributs à l’aide d’une condition OR, il faut fournir un tableau à trois dimensions, avec pour premier couple l’attribut et son nom, et le second, la condition et sa valeur :

1
2
3
4
5
6
7
8
9
10
11
$collection->addAttributeToFilter(array(
    array(
        'attribute' => 'entity_id',
        'in'        => array(1, 2, 3),
        ),
    array(
        'attribute' => 'created_at',
        'from'      => '1984-08-21',
        ),
    )
);