2012-01-06 9 views
2

コレクションにIF CONDITIONを作成したいと考えました。 $mtypeが空でない場合、この条件はaddFieldToFilter('main_table.m_type', $mtype)となり、条件が一致しない場合、このフィルタは機能しません。Magento条件付きaddFieldToFilter

$collection = Mage::getModel('manufacturers/manufacturers')->getCollection() 
           ->addStoreFilter(Mage::app()->getStore(true)->getId()) 
           ->addFieldToFilter('main_table.status', 1) 
           ->addFieldToFilter('main_table.m_type', $mtype) 
           ->addOrder(Mage::helper('manufacturers')->getManufacturerSort(), Mage::helper('manufacturers')->getManufacturerOrder()) 
          ->getData(); 

私はあなたにこの質問の回答を知らせてくれることを願っています。

おかげで、 ハナンアリ

答えて

0
$collection = Mage::getModel('manufacturers/manufacturers')->getCollection() 
    ->addStoreFilter(Mage::app()->getStore(true)->getId()) 
    ->addFieldToFilter('main_table.status', 1) 
    ->addOrder(Mage::helper('manufacturers')->getManufacturerSort(), Mage::helper('manufacturers')->getManufacturerOrder()); 

if (!empty($mtype)) { 
    $collection->addFieldToFilter('main_table.m_type', $mtype); 
} 

$data = $collection->getData(); 
+0

その私はこれを試して与えている動作していません –