Получить месяц даты с помощью addAttributeToFilter

#magento #collections

#magento #Коллекции

Вопрос:

Возможно ли получить месяц даты с помощью addAttributeToFilter? Мне нужно получить месяц даты рождения некоторых клиентов, но ничего не работает. Я пытаюсь использовать приведенный ниже код:

 <?php

$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('firstname')->addAttributeToSelect('lastname')->setOrder('firstname', 'ASC')->addAttributeToFilter('dob', array('like'=>'03'));

foreach ($collection as $client) { 

      echo  $client->getSelect()." ". $client->getData('firstname')." ".$client->getData('lastname')."<br>";
}
?>
  

Ответ №1:

Попробуйте так

 <?php$collection
$collection = Mage::getModel('customer/customer')->getCollection()
            ->addAttributeToSelect('firstname')
            ->addAttributeToSelect('lastname')
            ->addAttributeToFilter('dob', array('like'=>'%'))
            ->setOrder('firstname', 'ASC');

foreach ($collection as $client) { 

      echo  $client->getData('firstname')." ".$client->getData('lastname')."<br>";
}
?>
  

Комментарии:

1. при этом я получу тот же результат.

2. попробуйте так ->addAttributeToFilter('dob', array('like'=>'%'))

3. итак, как я уже говорил, когда вы отвечали на это раньше, эти подстановочные знаки фильтруют дату, которая имеет «03» в составе даты, я имею в виду, что не важно, находится ли «03» в день, месяц или год, вы знаете, можем ли мы фильтровать только «03», когдаэто через месяц?

4. Я понял! Это похоже на это ->addAttributeToFilter('dob', array('like'=>'%-03-%')) Спасибо за вашу помощь!