2016-05-30 5 views
0

私は一対多の関係を持っていますが、これはクエリのプロパティとして関係を使用すると完全に機能しますが、メソッドとして使用しようとすると常に空に戻ります。これはEloquent relationshipsクエリ構築メソッドが空に戻ります

$reports = User::find($id)->reports; 

作品

public function user() 
{ 
    return $this->hasOne('App\User', User::COL_ID, self::COL_USER_ID); 
} 

ユーザーモデル

public function reports() 
{ 
    return $this->hasMany('App\Report', Report::COL_USER_ID, self::COL_ID); 
} 

レポートモデルそれは全く正しいを取得する必要がありますので、これはしないと私は雄弁ドキュメントによると、この

$reports = User::find($id)->reports()->orderBy(Report::COL_CREATED_AT, self::ORDER_BY_DESC); 

ようなものが必要、「すべての関係も、クエリビルダーとして機能するので、あなたはさらに制約を追加することができます」データ、私は何かが不足していますか?代わりに、のみの

$reports = User::find($id)->reports()->orderBy(Report::COL_CREATED_AT, self::ORDER_BY_DESC)->get(); 

:あなたのケースでは

$reports = User::find($id)->reports()->orderBy(Report::COL_CREATED_AT, self::ORDER_BY_DESC); 

、あなただけあなたが使用する必要がありますので、実際の結果を得るためにgetメソッドを使用する必要があります任意の助け

答えて

1

事前に感謝データベースから結果を取得していません。だからあなたは何の結果も得られないのです。あなたが使用しようと

$reports = User::find($id)->reports()->get(); 

そして理由:それはショートカットだから

$reports = User::find($id)->reports; 

は作品がある

$reports = User::find($id)->reports(); 

だけあなたがいずれかを取得することはありません結果もどちらか。

+0

ありがとうございます!それは何かばかげた感じだった:/ –

関連する問題