2016-08-29 13 views
0

私は今かなりの間作業している問題があります。ユーザー関連の取得関数を置く場所

私はLaravel 5.0を使用していますとの関係設定している:

  • ユーザーは多くの旅程
  • を持つことができる旅程は、多くの目的地
  • ユーザーが旅程を通じて、多くの目的地を持っているを持つことができ

今私は多くのコントローラで必要な機能をセットアップしようとしています。

public function last_destination() { 
    return $last_destination = 
     \App\Destination::where('itinerary_id', auth()->user()->active_itinerary_id) 
     ->orderBy('order_index', 'DESC') 
     ->first(); 
} 

私は最後の目的地を取得しようと、それが正常に動作しますが、私はビューに変数としての最後の目的地を通過したときに、それは私にエラーをスルー:私はUser.phpでこの機能を持っているRelationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation

別のクラスにこの関数を入れる必要がありますか?もしそうなら、私はそれを$ user-> last_destination()と呼ぶことができますか?

ご協力いただきありがとうございます。

ありがとうございます! Sebastian

+0

あなたのビューに 'last_destination'を表示するために使用したコードを表示できますか? – Johnny

+0

私のコントローラには私が持っています: '$ last_destination = auth() - > user() - > last_destination(); そして、私の見解では、私は電話をしています。いいえ、私は$ user-> last_destination()を呼び出していますが、依然としてこのエラーを受け取ります。 '{{$ last_destination [' city ']}} ' –

答えて

1

Relationが返された場合のように、おそらく$user->last_destinationをどこかに呼び出そうとしています。

代わりに$user->last_destination()を試してみてください。メソッドを更新してRelationインスタンスを返すこともできます。

+0

私はコレクションではなく単一のモデルを返しています。それは問題になることができますか? –

+1

メソッドとしてではなく属性として呼び出す場所は他にありませんか?例外はどこにスローされますか? (ファイルと行)。コントローラーかビューですか? – alepeino

+0

私は@Alejandroに同意します。私の知る限り、そのエラーに遭遇する唯一の方法は、そのメソッドにプロパティとしてアクセスしようとしている場合です。おそらく、あなたのプロジェクトで " - > last_destination"の検索を試してみてください。 – Johnny

関連する問題