Ответ 1
Вы должны назвать это:
$article->path()
Когда вы выполняете $article->path
, вы пытаетесь использовать отношения "Ребенок", которых у вас нет.
Я пытаюсь построить путь для модели на laravel
Я создал функцию в моей модели:
public function path()
{
return App\Helper\GeneralController::getURL($this);
}
с dd(App\Helper\GeneralController::getURL($this))
test Я получил правильный ответ. (выход - это URL-адрес)
но с учетом вызова: $article->path
Я получаю эту ошибку:
App\Article:: path must return a relationship instance.
Что случилось?
Вы должны назвать это:
$article->path()
Когда вы выполняете $article->path
, вы пытаетесь использовать отношения "Ребенок", которых у вас нет.
Я столкнулся с этой ошибкой, когда забыл написать в модели возврат до отношения!
проверить это сейчас!
Вы называете отношения.
$article->path
Чтобы вызвать метод, используйте '()', например,
$article->path()
path()
- это метод не элемент объекта, который нужно вызвать как метод
$article->path();
Я знаю, что на это уже ответили и приняли. Однако, если OP действительно хотел использовать метод доступа к свойству, а не метод, используйте синтаксис "get {property name} Attribute" Laravel для создания пользовательского атрибута.
Вот как это будет выглядеть в данном конкретном случае:
public function getPathAttribute()
{
return App\Helper\GeneralController::getURL($this);
}
использование этого подходящего "пути" теперь может быть вызвано как атрибут и не будет разрешено для отношения с использованием синтаксиса:
$article->path;