#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-%'))
Спасибо за вашу помощь!