2016-04-28 5 views
2

()と呼ばれるべきではありません。非静的メソッドを照らしサポートコレクション::私は、次のようにデータ配列を取得しようと静的

$coupons = $user->coupons::where('is_activated_flg', 1)->where('is_used_flg', 0)->lists('amount'); 

私はこのエラーを持っている:

Non-static method Illuminate\Support\Collection::where() should not be called statically

問題点を教えてください。

$couponQuery = $user->coupons()->where('is_activated_flg', 1)->where('is_used_flg', 0); 
$couponCollection = $couponQuery->get(); 

+1

のようにそれを呼び出す:: WHERE'ことwhould' $ USER- >クーポン - >どこで ' – ash

+0

@ashそれを入手しよう!ありがとうございました! – lalala

答えて

2

から条項

あなたはこのような何かにそれを変更したい場合がありますどこの配列を送信してください。または組み合わせ:

$coupons = $user->coupons()->where('is_activated_flg', 1)->where('is_used_flg', 0)->get(); 

あなたはLaravel 5.1を使用している場合、またはわずかにあなたがリストの代わりに摘む使用して検討する必要があります以下は: https://laravel.com/docs/5.1/collections#method-pluck

$plucked = $collection->pluck('name'); 
$plucked->all(); 
1

は、公式ドキュメント

$users = DB::table('users')->where([ 
    ['status','1'], 
    ['subscribed','<>','1'], 
])->get(); 

https://laravel.com/docs/5.2/queries#selects

+0

OK、私は今正しい答えを見た(コメント:() – Pietro

+0

*もしOPがEloquentを使っていないのであれば、この答えは実際には悪くはないが、私はOPがEloquentを使用していると仮定する。 – ash

1

私はおそらく私のユーザモデルで雄弁な関係を定義したいです。その後、

/** 
    * User can have many coupons 
    */ 
    public function coupons() 
    { 
    return $this->hasMany('App\Coupons')->where('is_activated_flg', 1)->where('is_used_flg', 0); 
    } 

と私は明確ではないが、エラーのどの部分かわからないが、それは、 `する$ user->クーポンを意味

$user = User::findOrFail($id); 

$coupons = $user->coupons; 
関連する問題