我试着去得到这个代码的工作。但它不会工作。但是,当我更换$用品 - > ITEM_ID与静态数量的代码工作正常,只是没有动态输出。
foreach ($collection as $item) {
print 'title: '. $item->title . '<br>';
print 'link: '. $item->link . '<br>';
print 'item_id: '. $item->item_id . '<br>';
$test = PodioItem::get_basic($item->item_id); // replace it with a static number
print $test->fields['brugernavn']->values . '<br>';
}
问题是,我得到这个错误“试图获得非对象的特性‘价值’”
问题就在这里:
你迭代的项目的集合。对于其中的每一项,你会做一些东西。如果收集这些东西是不行的(抛出一个错误)的一个项目,该错误信息不会告诉你哪个。
如果你现在选择从你知道你做的东西正在收集单个项目(这里有一个item_id
),这也难怪,它的工作原理。
如何规避呢?
首先,你应该检查你的实际数据的任何缺陷。通过发生(print_r
,var_dump
或使用Xdebug的)错误之前检查的数据的权值来完成。你会发现,不是每一个项目都会有一个field['brugernavn']
为了避免这个错误:在做的东西之前,请确保,东西会工作。在你的情况,你应该检查,如果field['brugernavn']
存在,并且有像这样一个合理的值:
if (isset($test->fields['brugernavn']) && isset($test->fields['brugernavn']->values)) {
print $test->fields['brugernavn']->values . '<br>';
}