Ошибка Laravel: Попытка получить свойство необъекта при доступе через метод first () - PullRequest
0 голосов
/ 20 октября 2018

Я использую laravel 5.6 с PHP 7.1.

Laravel выбрасывает ErrorException Trying to get property of non-object, когда я пытаюсь получить доступ к свойству сообщения, полученного с помощью метода eloquent first().

$post = Blog::select('id', 'title', 'slug')->where('slug', $slug)->first(); //slug is unique column in database
$post->title; //this line cause the error

Однако, если я использую метод find(), он работает без каких-либо ошибок.

$post = Blog::select('id', 'title', 'slug')->find($primarykey);
$post->title; //No error

Поскольку я не могу использовать второй метод, каков наилучший возможный способчтобы получить доступ к этим свойствам, когда модальное извлекается методом first()?

Редактировать:

Когда я делаю dd($post) с этими 2 методами, я вижу точный результат.
Также ошибка регистрируется в файле laravel.log, и я вижу страницу без проблем.Это происходит только тогда, когда я использую метод first().

Edit 2:

Вот мой точный код:

$viewData['resource'] = Resource::select('id', 'resource_category_id', 'name', 'descp', 'seo_title', 'seo_keywords', 'seo_descp', 'dl_type', 'download', 'thumb', 'image', 'dl_count', 'updated_at')->with(['category' => function($q){
        $q->select('id', 'name', 'slug', 'parent_id');
    }])->where('slug', $slug)->first();
$id = $viewData['resource']->id; // this line throw error, line 126

local.ERROR: Trying to get property of non-object {"exception":"[object] (ErrorException(code: 0): Trying to get property of non-object at E:\\websites\\couponclone\\app\\Http\\Controllers\\ResourceController.php:126)

1 Ответ

0 голосов
/ 20 октября 2018

Наконец я нашел ответ.Это странное решение, хотя.При использовании метода Laravel firstOrFail().Ошибка не регистрируется в файле laravel.log.

Таким образом, snswer использует firstOrFail() вместо first().Это не будет регистрировать ошибку Trying to get property of non-object в вашем файле журнала laravel.

Я не уверен, почему это так, может быть из-за PHP 7 или есть ошибка в laravel?Но это сработало.

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