Прямой SQL-запрос Magento возвращает 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);

person AdRock    schedule 31.03.2014    source источник


Ответы (1)


Adrock. Используйте ниже для более подходящего решения

    $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.
person Amit Bera    schedule 31.03.2014
comment
Именно то, что мне нужно - person AdRock; 31.03.2014