2014-03-31 66 views
0

我正在为我正在开发的模块创建模型,但我遇到了一个问题,以回应查询的结果。Magento直接SQL查询返回NULL

使用var_dump()打电话时,我得到了什么块中的模型是NULL

我没有,因为在资源模型明白,如果我做一个echo $select它打印出来,我进入phpMyAdmin的查询并找到该行。我想我一定是试图错误地输出这一行。

这是我的资源模型:

class MyCompany_Facebook_Model_Resource_Facebookcoupon extends Mage_Core_Model_Resource_Db_Abstract 
{ 
    protected function _construct() 
    { 
     $this->_init('facebook/facebookcoupon', 'entity_id'); 
    } 

    public function loadByField($field,$value) 
    { 
     $table = $this->getTable('facebook/facebookcoupon'); 
     $where = $this->_getReadAdapter()->quoteInto("$field = ?", $value); 
     $select = $this->_getReadAdapter()->select()->from($table,array('facebook_id'))->where($where); 
     $id = $this->_getReadAdapter()->fetchOne($select); 
     return $id;  
    } 

这是我的模型

class MyCompany_Facebook_Model_Facebookcoupon extends Mage_Core_Model_Abstract 
{ 

    protected function _construct() 
    { 
     parent::_construct(); 
     $this->_init('facebook/facebookcoupon'); 
    } 

    public function loadByField($field,$value) 
    { 
     $id = $this->getResource()->loadByField($field,$value); 
     $this->load($id); 
    } 
} 

和我把它用此块

class MyCompany_Facebook_Block_Content extends Mage_Core_Block_Template 
{ 
    private $couponCode; 

    public function displayCoupon($test) 
    { 
     $facebookid = Mage::getModel('facebook/facebookcoupon')->loadByField('facebook_id', '14547854'); 

     var_dump($facebookid); 

回答

4

Adrock.use下面的更合适的解决方案

$model = Mage::getModel('facebook/facebookcoupon') ->getCollection() 
->addFieldToFilter('facebook_id', 14547854) ->getFirstItem(); 

// here you'll get a collection but single record - 

请注意:

loadByField($field,$value) in resource model is wrong.you can use load() 
function only whenever,you will be trying to fetch data using primary key. 
+0

正是我需要的 – AdRock