0

无法向页面添加快速详细信息块。当您将块拖入时,它只会在顶部显示一条蓝线。选择您想要的条目的 for 永远不会出现。但是添加列表块工作正常。升级到 5.8.1 希望它能解决问题,但没有运气。删除和重新添加快递对象等,无济于事。

我找到了块加载失败的地方,但无法找出失败的原因。它失败并出现错误“在 null 上调用成员函数 getID()”。在第 41 行使用 getEntity()->getID()?>" 所以看起来 $expressAttributes 包含一个空值,但是代码计数($expessAttributes)确实产生了一个(1)。我假设我缺少一些东西或在数据库中不正确,但我找不到从哪个表中提取,或者缺少什么。上一个下拉列表填充了正确的快速实体 ID 和描述。很难调试,因为它看起来像是在使用 ajax 和我很难显示任何错误。谢谢

    </div>
<div class="form-group" data-container="express-entry-custom-attribute">
    <?php echo $form->label('akID', t('Express Entry Attribute'))?>
    <?php if (count($expressAttributes)) { ?>
    <select name="exEntryAttributeKeyHandle" class="form-control">
        <option value=""><?php echo t('** Select Attribute')?></option>
        <?php foreach($expressAttributes as $ak) {
            $settings = $ak->getAttributeKeySettings();
            ?>
            <option data-entity-id="<?php echo $settings->getEntity()->getID()?>" <?php if ($ak->getAttributeKeyHandle() == $exEntryAttributeKeyHandle) { ?>selected="selected" <?php } ?> value="<?php echo $ak->getAttributeKeyHandle()?>"><?php echo $ak->getAttributeKeyDisplayName()?></option>
        <?php } ?>
    </select>
    <?php } else { ?>
        <p><?php echo t('There are no express entity page attributes defined.')?></p>
    <?php } ?>
</div>

<div class="form-group">
    <?php echo $form->label('exFormID', t('Display Data in Entity Form'))?>
    <div data-container="express-entry-detail-form">
4

1 回答 1

0
$settings = $ak->getAttributeKeySettings();
$settings->getEntity()->getID();

您正在调用 getEntity(),它是属性设置类上 Express 类的函数。您应该在用于从中获取属性的 Express 对象上调用 getEntity()。我在您的代码中看不到 Express 对象。

于 2017-02-17T04:12:53.283 回答