Примечание: Попытка получить доступ к смещению массива по значению типа bool - PullRequest
0 голосов
/ 18 апреля 2020

Я получаю следующую ошибку при попытке открыть новую страницу из меню. в PHP7 .4

Я думаю, что mssql_num_rows () для проверки, больше ли число строк, чем ноль, решит проблему, но я не могу реализовать ее в этом коде из-за моего плохого знания PHP и мое нехватка времени.

public function getCompany()
    {
        /** @var $Params array */
        $Params = $this->getURLParams();

        $sql = sprintf("
            SELECT CompanyName.ID
            FROM CompanyName, SiteTree
            WHERE CompanyName.Slug = '%s' and CompanyName.CompanyPageID = SiteTree.ID and SiteTree.URLSegment = '%s'
         ", $Params['Action'], $Params['URLSegment']);

        /** @var $row array */
        $row = DB::query($sql)->current();

        /** @var $Company CompanyName */

        $Company = DataObject::get_by_id(CompanyName::class, intval($row['ID']));

        if (!$Company instanceof CompanyName) {
            return false;
        }

        /** @var $CompanyPage CompanyPage */
        $CompanyPage = $Company->CompanyPage();

        if ($CompanyPage->getField('URLSegment') != $Params['URLSegment'])
        {
            return false;
        }

        return $Company;
    }

Есть идеи, как решить эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 18 апреля 2020

Решено, я изменил:

$Company = DataObject::get_by_id(CompanyName::class, intval($row['ID']));

на

$Company = DataObject::get_by_id(CompanyName::class, intval($row['ID']??='default value'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...