这是我的代码:
$collection = Mage::getModel('orderhandling/paymentmapper')->getCollection();
$payments = $collection->addFieldToFilter('id', $id);
有时,如果未定义 id ,则$payments
中的 _data 数组未定义。如何检查是否未定义?我试过了isset,但无论是否定义了数组,这都是假的。
谢谢!
答案 0 :(得分:1)
您是否尝试过empty($payments)
。因为id集合是空的,所以它返回空对象。您也可以使用getData查看
if (!$payments->getData() || empty($payments->getData())) {
// do things
}
答案 1 :(得分:1)
如果未定义$ id,则您的集合将为空,因为magento会将addFieldToFilter
的第二个参数转换为字符串。
例如:
$collection = Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', $id);
echo (string) $collection->getSelect();
输出:
SELECT 1 AS `status`, `e`.`entity_id`, `e`.`type_id`, `e`.`attribute_set_id` FROM `catalog_product_flat_1` AS `e` WHERE (e.entity_id = '')
当然不会匹配任何东西。
您可以致电$collection->getSize()
来验证收藏品的尺寸。