【问题标题】:Importing custom csv from my custom module magento从我的自定义模块 magento 导入自定义 csv
【发布时间】:2014-06-25 07:01:29
【问题描述】:

我是 magento 的新手,我正在尝试从我的自定义模块中导入一个 csv 文件。我会尝试更多地解释它。我创建了一个模块来输入区域信息(即区域名称、成本等),它运行良好,我可以添加新区域。现在我正在尝试添加一个“导入”按钮,我可以导入一个 csv包含有关要保存在 magento 数据库中我的区域表中的多个区域信息的文件。仅供参考,我使用的是平面表。

到目前为止,我可以在单击时将网格视图上的按钮放在“添加新”旁边,它会重定向到导入功能。在此之后我不知道该怎么做,我认为选择文件菜单应该会选择我的 csv,但我无法访问它。任何人都可以帮忙。任何帮助都是可行的。

提前感谢

【问题讨论】:

    标签: magento csv import


    【解决方案1】:

    我假设您有一个用于自定义实体的资源模型(否则它将不起作用)。
    资源模型应该放在[Namespace]/[Module]/Model/Resource/[Entity].php.
    在该资源模型中创建此方法

    public function saveImportData(array $data){
        if (!empty($data)) {
            $columns = array('region_name', 'cost'); //add here all your column names except the autoincrement column.
            $this->_getWriteAdapter()->insertOnDuplicate($this->getMainTable(), $data, $columns);
        }
        return $this;
    }
    

    现在在您上传文件的操作中,解析该文件并创建一个包含要插入的行的数组。

    您的数组应如下所示:

    $toImport = array(
        array('region_name' => 'Region 1', 'cost'=>'12.99', ...rest of the fields here), 
        array('region_name' => 'Region 2', 'cost'=>'17.99', ...rest of the fields here), 
        ....
    )
    

    现在你只需要调用控制器

    Mage::getResourceModel('[module]/[entity]')->saveImportData($toImport);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2021-02-20
      相关资源
      最近更新 更多