這裏是我的UserController @ getIndex,它輸出一些用戶和所有用戶數。Laravel雄辯緩存查詢條件
$name = Input::get('name');
$page = Input::get('page');
$limit = Input::get('limit');
$users = User::where('name', 'like', '%'.$name.'%')
->orderBy('created_at', 'desc')
->skip($limit*$page)->take($limit)
->get();
return array(
'rows'=>$users->toArray(),
'results'=>User::where('name', 'like', '%'.$name.'%')->count(),
);
有沒有什麼辦法可以重用'where()'部分,所以我不必重複我的自我?
謝謝,範圍是一個很好的方法來做到這一點。但是我認爲範圍應該用一些更「常見」的方式,比如「scopeFemale」或「scopeOld」。 此控制器響應管理面板,對於其他資源(如「訂單」),過濾器更復雜,它只是用於管理網格過濾器,僅用於此操作,所以有任何方便的方法嗎? – missingcat92
範圍是推薦的,在我看來是實現這種方法的最簡單方法。我能想到的是在模型事件中使用boot()方法,並在那裏設置了條件where子句,但我沒有嘗試過,即使它成功了,它肯定會更復雜。 http://laravel.com/docs/eloquent#model-events – Arda