Ошибка call to member function takeUrl() on null ( October CMS) Как сделать проверку на пустой URL?
Возникает ошибка в функции
public function takeUrl($pageName, $controller) { $full_category_slug = $this->category->takeUrl($pageName, $controller); if(!empty($full_category_slug)){ $full_slug = $full_category_slug.'/'.$this->slug; }else{ $params = [ 'id' => $this->id, 'slug' => $this->slug, 'records' => $this->category->slug.'/'.$this->slug, ]; $full_slug = $controller->pageUrl($pageName, $params); } return $full_slug; } |
public function takeUrl($pageName, $controller) { $full_category_slug = $this->category->takeUrl($pageName, $controller); if(!empty($full_category_slug)){ $full_slug = $full_category_slug.'/'.$this->slug; }else{ $params = [ 'id' => $this->id, 'slug' => $this->slug, 'records' => $this->category->slug.'/'.$this->slug, ]; $full_slug = $controller->pageUrl($pageName, $params); } return $full_slug; }
Ошибка: call to member function takeUrl() on null
Я так понимаю нужно сделать проверку на пустой URL.
Можете подсказать как правильно сделать?
Дополнительно:
dd($this->category)
Убедись что этот метод существует в $this->category->takeUrl(), посмотри что у тебя в $this->category
$full_category_slug = $this->category?->takeUrl($pageName, $controller); |
$full_category_slug = $this->category?->takeUrl($pageName, $controller);
а по факту ошибка говорит о том что $this->category пустая (null)
-
$this?
В php $this не может быть null, соответственно, защита тут не нужна.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы избежать ошибки "call to member function takeUrl() on null" в October CMS, необходимо сначала убедиться, что объект, к которому вы обращаетесь, не является NULL. Это можно сделать путем проверки наличия объекта перед вызовом его методов.
Для проверки на пустой URL в October CMS можно использовать следующий код на PHP:
if (!empty($url)) { // Ваш код для работы с непустым URL $url->takeUrl(); } else { // Ваш код для обработки ситуации с пустым URL echo "URL пустой"; }
В данном примере, мы сначала проверяем, что переменная $url не пустая (не равна NULL и не пустая строка). Если это условие выполняется, то вызываем метод takeUrl() для объекта $url. В противном случае, выводим сообщение о том, что URL пустой.
Таким образом, добавив проверку на пустой URL в ваш код, вы сможете избежать ошибки "call to member function takeUrl() on null" и обработать ситуацию, когда URL отсутствует или пустой.