File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,10 @@ class UsersController extends Controller
2626 public function dataTable(Request $request)
2727 {
2828 return (new DataTableResponder(User::class, $request))
29- ->setPerPage(10) // Optional, default: 15
29+ ->query(function($query) { // Optional, default: none
30+ $query->where('name', 'like', 'B%');
31+ })
32+ ->setPerPage(10) // Optional, default: 15
3033 ->respond();
3134 }
3235}
Original file line number Diff line number Diff line change @@ -21,6 +21,11 @@ class DataTableResponder
2121 */
2222 private $ request ;
2323
24+ /**
25+ * @var callable
26+ */
27+ private $ queryManipulator ;
28+
2429 /**
2530 * @var int
2631 */
@@ -58,6 +63,18 @@ public function setPerPage($perPage)
5863 return $ this ;
5964 }
6065
66+ /**
67+ * Sets the callable used to manipulate the model query.
68+ *
69+ * @param callable $queryManipulator
70+ * @return DataTableResponder
71+ */
72+ public function query (callable $ queryManipulator )
73+ {
74+ $ this ->queryManipulator = $ queryManipulator ;
75+ return $ this ;
76+ }
77+
6178 /**
6279 * Builds the Eloquent query based on the request.
6380 *
@@ -75,6 +92,11 @@ private function buildQuery(Request $request)
7592 $ query ->orderBy ($ orderByField , $ orderByDirection );
7693 }
7794
95+ $ queryManipulator = $ this ->queryManipulator ;
96+ if ($ queryManipulator ) {
97+ $ queryManipulator ($ query );
98+ }
99+
78100 return $ query ;
79101 }
80102
You can’t perform that action at this time.
0 commit comments