在Magento自定义模块中编写数据库查询

时间:2015-02-06 09:08:26

标签: mysql magento module

我在Magento中创建了一个自定义模块。这很好用。我的模块名称是mymodule。 的 Mymodule.php

class Myshop_Mymodule_Block_Mymodule extends Mage_Core_Block_Template
{
    public function myfunction()
    {
        return "Hello User";
    }
}

Mymodule.php文件的路径为C:\wamp\www\magento\app\code\local\Myshop\Mymodule\Block

现在我想从数据库中显示一些数据。例如,我想显示管理员的电子邮件ID。我怎么能显示这个??

我试过这样。

$read = Mage::getSingleton('core/resource')->getConnection('core_read');
//database write adapter
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$result = $read->fetchAll("select email from admin_user where user_id= 1");
var_dump($result);

我在Mymodule.php myfunction内写下这些行。但没有显示任何内容(仅显示" Hello User")。

所以我的问题是如何在magento custom module中显示或编写数据库查询。

请有人帮助我。任何帮助都非常明显......

2 个答案:

答案 0 :(得分:1)

默认情况下,magento为基本表提供模型时,我们通常会避免使用适配器。在您的情况下,您可以使用以下方式获取管理员详细信息:

<?php
    $userDetails = Mage::getModel('admin/user')->load(1);
    //where 1 is your admin user id
    echo $userDetails->getEmail();
?> 

因此,您的功能可以修改为:

<?php 
class Myshop_Mymodule_Block_Mymodule extends Mage_Core_Block_Template
{
    public function myfunction()
    {
        $userDetails = Mage::getModel('admin/user')->load(1);
        return $userDetails->getEmail();
    }
}

答案 1 :(得分:0)

您可以使用magento中的数据库获取数据

$collection = Mage::getModel("mumodule/mymodule")->getCollection();
foreach($collection as $data){
    ..Your Code ..
}