Haciendo consultas con addAttributeToFilter en Magento


Notice: Undefined variable: post in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Notice: Trying to get property of non-object in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Haciendo consultas con addAttributeToFilter en Magento

Los que programamos en Magento, conocemos bien la función addAttributeToFilter(), que nos permite hacer querys directamente sobre, por ejemplo, el catálogo de productos operando directamente sobre los atributos sin necesidad de sumergirnos en engorrosas cláusulas SQL con los errores y problemas que esto nos podría dar.
Un ejemplo de uso sería este fragmento de código:


$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect(array('sku','name', 'product_url', 'image'))
->addAttributeToFilter('sku', array('like' => '%A%'))
->load();

Esto nos devolverá una colección $products, en la que podremos escoger para visualizar los atributos: sku, name, product_url e image.  Esta colección vine filtrada por sku like ‘%A%’, como se ve claramente usando la función AddAttributeToFilter().  ¿Qué otros comandos podemos utilizar con esta función para obtener nuestras consultas?

Aquí os dejo un listado con las opciones de las que podemos hacer uso, con ejemplos:

Igual – Equals: eq

$_products->addAttributeToFilter('status', array('eq' => 1));

Diferente – Not Equals – neq

$_products->addAttributeToFilter('sku', array('neq' => 'spiderman'));

Coincidencia – Like – like

$_products->addAttributeToFilter('sku', array('like' => '%spiderman%'));

No coincidencia – not Like – nlike

$_products->addAttributeToFilter('sku', array('nlike' => '%spiderman%'));

Contiene – In – in

$_products->addAttributeToFilter('id', array('in' => array(15,25,35,40,41,42,43)));

No contiene – Not In – nin

$_products->addAttributeToFilter('id', array('nin' => array(15,25,35,40,41,42,43)));

Valor nulo – Null- null

$_products->addAttributeToFilter('description', 'null');

Valor no nulo – not Null- null


$_products->addAttributeToFilter('description', 'notnull');

Mayor que – Greater than – gt

$_products->addAttributeToFilter('price', array('gt' => 5));

Menor que – Less than – lt

$_products->addAttributeToFilter('price', array('lt' => 25));

Mayor o igual que – Greater than o equals to – gteq

$_products->addAttributeToFilter('price', array('gteq' => 5));

Menor o igual que – Less than o equals to – lteq

$_products->addAttributeToFilter('price', array('lteq' => 25));

Todo esto es válido para usar en atributos de producto, ya sabéis, en la instancia de la clase

Mage::getModel('catalog/product')

Si queremos usar esto en otras clases, probad con la función AddFieldToFilter, que se utiliza exactamente igual.

Escribe tu comentario

comentarios

Speak Your Mind

*