2016-01-17 2 views
0

Я новичок в Magento и пытаюсь создать контроллер для моего настраиваемого модуля. Код контроллера:Вызов функции-члена getData() для не-объекта

class Shopez_HomeSearch_IndexController extends Mage_Core_Controller_Front_Action 
{ 
    public function dothesearchAction() 
    { 
     $searchQuery = $this->getRequest()->getParam("param"); 
     $_obj = new Varien_Data_Collection(); 

     $mageFilename = 'app/Mage.php'; 
     require_once $mageFilename; 
     ini_set('display_errors', 1); 
     umask(0); 
     Mage::app(); 
     $connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
     $sql  = "Select seller_id, store_title from marketplace_sellerprofile"; 
     $_obj  = $connection->fetchAll($sql); 

     var_dump($_obj); 

     foreach ($_obj as $_obj2): 
       var_dump($_obj2->getData()); 
       //do something else once you get the data out of obj2 

     endforeach; 
    } 
} 

свалка из запроса совершенно нормально, но когда я пытаюсь сделать Еогеасп, чтобы получить отдельные значения полей из тогда я получаю ошибку, упомянутых выше.

var_dump ($ _ OBJ) выход следующим образом:

array (size=37) 
    0 => 
    array (size=2) 
    'seller_id' => string '1' (length=1) 
    'store_title' => string 'The Goodness Store' (length=18) 
    1 => 
    array (size=2) 
    'seller_id' => string '2' (length=1) 
    'store_title' => string 'XYZ Store' (length=22) 
    .... 

ответ

1

Как вы используете прямой запрос на Magento, вы не сможете использовать функцию GetData(). Вы пытаетесь получить данные в формате массива, а не объекте. Таким образом, вы можете получить доступ к данным, как показано ниже.

foreach ($_obj as $_obj2): 
    var_dump($_obj2['seller_id']); 
    var_dump($_obj2['store_title']); 
endforeach; 
+0

Спасибо. Это сработало. – coderatlarge