【问题标题】:Pimcore - Related Object Values not gettingPimcore - 相关对象值没有得到
【发布时间】:2017-09-28 20:29:59
【问题描述】:

您好,我正在从事 pimcore 项目。

我有存储产品详细信息的产品类

在产品详细信息中,我有一个字段 ma​​nufacturer,它是指另一个 class Manufacturer

使用自定义插件保存事件,我得到了产品和制造商数据。

但是当我尝试使用 cron 作业时,我 没有获得相关(制造商)对象值。

下面是我用来获取对象详细信息的代码。

$list = new Object_Product_List();
$list->setCondition('o_id = ?', $objectId);
foreach($list as $list_data)
        {
            $productdata = (array)($list_data);
            echo "<pre>";
            print_r($productdata);
            exit;
        }

我得到如下输出。

Array
(
    [o_classId] => 15
    [o_className] => Product
    [name] => WS-KD WALL SHELVES
    [sku] => HWS-KD-36
    [enable] => 1
    [visibility] => 4
    [manufacturer] =>  // But this value is empty not getting Manufacturer value.
    ...........
    ......... So on
)

请帮助我在哪里犯了错误。如何获取相关的对象值?

谢谢

【问题讨论】:

    标签: object pimcore


    【解决方案1】:

    您需要使用 getter 来获取制造商对象。

    像 $list_data->getManufacturer() 这样的东西应该可以工作。

    还可以查看文档:

    //get a related object
    

    $relationObject = $relation-&gt;getObject();

    https://www.pimcore.org/docs/latest/Objects/Object_Classes/Data_Types/Relation_Types.html

    【讨论】:

    • 谢谢你的回答也很有帮助。我通过 get 方法获取值。
    【解决方案2】:

    为什么在尝试只获取一个元素时使用产品列表? O_id 是唯一值。您可以使用 getter 获取产品:

    Product::getById($objectId);
    

    在创建类时,您检查了制造领域的“延迟加载”选项吗?

    【讨论】:

    • 不,我试图让我的所有产品都不是一个元素,而是有数千种产品。但是是的,我已经检查了延迟加载选项。我没有检查它,它运作良好。谢谢指出
    • 再次感谢!!!只是因为检查了延迟加载选项,我无法获得该值。我没有检查它,它运作良好。您能否详细说明为什么会发生这种情况
    • 如果您使用“延迟加载”,则必须使用 setter 和 getter:“小心 - 使用 Getter 和 Setter!$object->multihref = null; 无法清除延迟加载时的multihref被激活。如果一个对象或multihref数据类型的值为null,对于Pimcore来说这意味着该字段的数据还没有被加载,并且在保存对象时它不会被触摸。"
    • 好的,根据您的意见,我们需要取消选中延迟加载选项吗?
    • 如果您有一个大型站点并且您需要优化您的站点,最好启用“延迟加载”,但是您需要使用 getter 和 setter。但是,如果您正在构建一个小型服务,并且希望产品对象的所有属性都可用,则需要取消选中“延迟加载”选项
    猜你喜欢
    • 2018-10-14
    • 2017-01-16
    • 2017-05-13
    • 2023-02-10
    • 2012-04-25
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 2015-10-17
    相关资源
    最近更新 更多