在非对象上调用成员函数 getData()



我是Magento的新手,正在尝试为我的自定义模块创建一个控制器。控制器代码为:

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;
    }
}

来自查询的转储非常好,但是当我尝试执行foreach以获取单个字段值时,我会收到上述错误。

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)
   ....

由于您在 magento 上使用直接查询,因此您将无法使用 getData() 函数。您正在尝试获取数组格式而不是对象格式的数据。因此,您可以按如下方式访问数据。

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

最新更新