Laravelでモデルのパスを作成しようとしています
モデルに関数を作成しました:
public function path()
{
return App\Helper\GeneralController::getURL($this);
}
dd(App\Helper\GeneralController::getURL($this))
テストで、私は正しい答えを得ました。 (出力はURLです)
しかし、呼び出しでビュー:$article->path
私はこのエラーを受け取ります:
App\Article:: path must return a relationship instance.
なにが問題ですか?
呼び出す必要があります:
$article->path()
$article->path
を実行すると、あなたが持っていない雄弁な関係を使用しようとしています。
モデルの関係の前にreturnと書くのを忘れたときに、このエラーに直面しました!
今すぐチェック!
あなたは関係を呼んでいます。
$article->path
メソッドを呼び出すには、次のように「()」を使用します。
$article->path()
path()
は、メソッドとして呼び出す必要があるオブジェクト要素ではないメソッドです
$article->path();
これはすでに回答され、受け入れられています。ただし、OPがメソッドではなくプロパティアクセサーを使用する場合は、Laravelの「get {property name} Attribute」構文を使用してカスタム属性を作成します。
この特定の場合の外観は次のとおりです。
public function getPathAttribute()
{
return App\Helper\GeneralController::getURL($this);
}
このアプローチを使用すると、「パス」を属性として呼び出すことができ、構文を使用した関係に解決されません。
$article->path;