J'essaie de construire un chemin pour un modèle sur laravel
J'ai créé une fonction dans mon modèle:
public function path()
{
return App\Helper\GeneralController::getURL($this);
}
avec dd(App\Helper\GeneralController::getURL($this))
test, j'ai eu la bonne réponse. (la sortie est une URL)
mais en vue avec l'appel: $article->path
j'obtiens cette erreur:
App\Article:: path must return a relationship instance.
Qu'est-ce qui ne va pas?
Vous devez l'appeler:
$article->path()
Lorsque vous utilisez $article->path
, vous essayez d'utiliser une relation Eloquent que vous n'avez pas encore.
path()
est une méthode, pas un objet, vous devez appeler cette méthode.
$article->path();
Vous appelez une relation.
$article->path
Pour appeler la méthode, utilisez '()', comme ça,
$article->path()
J'ai fait face à cette erreur quand j'ai oublié d'écrire return avant la relation dans le modèle!
regardez-le maintenant!
Je sais que cela a déjà été répondu et accepté. Toutefois, si l'OP souhaite utiliser un accesseur de propriété plutôt qu'une méthode, utilisez la syntaxe "get {nom de la propriété}" de Laravel pour créer un attribut personnalisé.
Voici à quoi cela ressemblerait pour ce cas particulier:
public function getPathAttribute()
{
return App\Helper\GeneralController::getURL($this);
}