2016-11-13 8 views
1

モデルルームでプロパティ 'price'を計算しました。 Eloquent Laravelの計算フィールドのフィルタリング(追加)

protected $appends = ['price']; 

public function getPriceAttribute() 
{ 
    if ($this->action) return $this->action_price_per_meter*$this->area; 
    return $this->price_per_meter*$this->area; 
} 

私は、この仮想フィールドで部屋をフィルタリング

...もちろん

$rooms = Room::where('price','<',100000)->get(); 

Iましたエラー - Laravelの方法でこの問題を解決する方法

を見つけていない列 '価格'?

答えて

0

EloquentにはwhereRawメソッドがあります。このメソッドを使用すると、クエリのそのセグメントを手動で構築できます。あなたのケースでは

あなたはSQLでモデルのメソッドと同等のものを必要とする:

->whereRaw('price_per_meter * area < 100000') 

それが出発点となるべきものを、あなたのaction列がやっているが、それに応じて、より複雑になります。

+0

どのようにアクションの列に応じてですか? –

関連する問題