Попытка получить свойства 'значения' не-объекта - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь заставить этот код работать.Но это не сработает.Но когда я заменяю $ item-> 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>';
        }

Проблема в том, что я получаю эту ошибку «Попытка получить значения« свойства »не-объекта»

enter image description here

1 Ответ

0 голосов
/ 07 февраля 2019

Проблема здесь:

Вы перебираете коллекцию предметов.Для каждого из этих предметов вы будете делать некоторые вещи.Если для одного элемента коллекции этот материал не будет работать (выдает ошибку), сообщение об ошибке не сообщит, какой именно.

Если вы сейчас выберете один элемент из коллекции, вы знаете, что над чем вы работаете (здесь: 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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...