Неустранимая ошибка: вызов функции-члена update () при нулевой проблеме - PullRequest
1 голос
/ 12 марта 2020

У меня на сайте есть раздел, где разбираются используемые элементы из Steam API. Каждый элемент имеет атрибут market_hash_name, classid, и у меня есть виртуальные элементы на сайте, которые имеют постоянные значения market_hash_name и classid, и эти значения не меняются.

Элементы, которые находятся в сервисе Steam, хранятся в базе данных, виртуальные элементы на сайте не сохраняются в базе данных, а генерируются с помощью json на лету.

Сайт имеет функцию передачи предметов из сервиса Steam и виртуальных предметов друг другу. Элементы, которые есть в Steam (и они зарегистрированы в базе данных), передаются без проблем, но виртуальные элементы не передаются (потому что их нет в базе данных), и выдают ошибку: Fatal error: Call to a member function update() on null line: 851

Мой код:

    foreach ($itemsInfo as $item) {
        if (isset($item['classid'])) {
            $itemDB = Item::find($item['id']);

            $itemDB->update([
                'steamid' => $user->steamid64,
                'status' => 0
            ]);
        }
    }

На 851 строке у меня есть $itemDB->update.

Проблема возникает из-за того, что я пытаюсь перенести виртуальные элементы, их нет в базе данных, и поэтому я получаю эту ошибку потому что в таблице items нет моего значения classid для виртуальных предметов. Как правильно установить условие, например if item has classid == test, than use another code;?

1 Ответ

1 голос
/ 12 марта 2020

Как упоминалось в предыдущих комментариях, вы должны проверить возвращаемое значение метода find ():

    foreach ($itemsInfo as $item) {
        if (isset($item['classid'])) {
            if($itemDB = Item::find($item['id'])) {

                $itemDB->update([
                    'steamid' => $user->steamid64,
                    'status' => 0
                ]);
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...