【问题标题】:Export objects from class issue从类问题中导出对象
【发布时间】:2016-01-10 19:42:01
【问题描述】:

我有一个产品导出,我尝试使用我的自定义插件导出所有对象。我正在使用下面的方法来加载所有对象

        $list = new Pimcore_Model_Object_Bodproduct();
        $list->setOrder ( "ASC" );
        $list->setOrderKey ( "o_id" );

        // Load all filtered objects - products
        $list->load ();

然后我使用 foreach 循环来访问对象。

一切正常。但问题是导出需要花费大量时间。有没有其他解决方案..我的意思是代替load()函数,有没有其他方法可用?

【问题讨论】:

    标签: php pimcore


    【解决方案1】:

    您可以使用 $list->loadIdList() 仅获取对象 ID - 这应该更快。然后你可以在循环中调用Object::getById($id) 来提供进度条(假设你的脚本是在控制台中启动的)。

    其实这是load()在内部做的,请看Object\Listing\Resource class

    另一种选择是通过调用$list->getItems($offset, $itemCountPerPage) 将负载拆分到多个“页面”。

    【讨论】:

    • 谢谢,这也是一个不错的解决方案。但实际上我在 foreach 循环中搞砸了。
    【解决方案2】:

    在 Pimcore 对象列表中,您可以遍历列表中的每个对象,而无需调用 load 方法。在您的情况下,只需删除 "$list->load ();" 并查看它会在更短的时间内工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多