@@ -132,26 +132,49 @@ private function filterRelationModel(): void
132132 */
133133 private function defaultFilterableColumn (): self
134134 {
135- $ this ->builder ->when (!empty (request ()?->query("created_at " )[0 ]), function (Builder $ query ) {
135+ if ($ filterKey = config ('queryextend.filter_query_param_root ' )) {
136+ $ requestCreatedStartFilter = empty (request ()->query ()[$ filterKey ]["created_at " ][0 ]);
137+ $ requestCreatedEndFilter = empty (request ()->query ()[$ filterKey ]["created_at " ][1 ]);
138+ } else {
139+ $ requestCreatedStartFilter = empty (request ()->query ("filter_created_at " )[0 ]);
140+ $ requestCreatedEndFilter = empty (request ()->query ("filter_created_at " )[1 ]);
141+ }
142+
143+ $ this ->builder ->when (!$ requestCreatedStartFilter , function (Builder $ query ) use ($ filterKey ) {
136144 try {
137- $ date = Carbon::createFromFormat ('Y-m-d ' , request ()?->query("created_at " )[0 ]);
145+ $ date = Carbon::createFromFormat ('Y-m-d ' , $ filterKey ?
146+ request ()->query ()[$ filterKey ]["created_at " ][0 ] :
147+ request ()->query ("filter_created_at " )[0 ]
148+ );
138149 } catch (\Exception $ e ) {
139- throw ValidationException::withMessages (['created_at.0 ' => 'Date format should be yyyy-mm-dd ' ]);
150+ if ($ filterKey ) {
151+ throw ValidationException::withMessages (["$ filterKey.created_at.0 " => 'Date format should be yyyy-mm-dd ' ]);
152+ } else {
153+ throw ValidationException::withMessages (["filter_created_at.0 " => 'Date format should be yyyy-mm-dd ' ]);
154+ }
140155 }
141156
142157 $ query ->where ("created_at " , ">= " , $ date ->startOfDay ());
143158 });
144159
145- $ this ->builder ->when (!empty ( request ()?->query( " created_at " )[ 1 ]) , function (Builder $ query ) {
160+ $ this ->builder ->when (!$ requestCreatedEndFilter , function (Builder $ query) use ( $ filterKey ) {
146161 try {
147- $ date = Carbon::createFromFormat ('Y-m-d ' , request ()?->query("created_at " )[1 ]);
162+ $ date = Carbon::createFromFormat ('Y-m-d ' , $ filterKey ?
163+ request ()->query ()[$ filterKey ]["created_at " ][1 ] :
164+ request ()->query ("filter_created_at " )[1 ]
165+ );
148166 } catch (\Exception $ e ) {
149- throw ValidationException::withMessages (['created_at.1 ' => 'Date format should be yyyy-mm-dd ' ]);
167+ if ($ filterKey ) {
168+ throw ValidationException::withMessages (["$ filterKey.created_at.1 " => 'Date format should be yyyy-mm-dd ' ]);
169+ } else {
170+ throw ValidationException::withMessages (["filter_created_at.1 " => 'Date format should be yyyy-mm-dd ' ]);
171+ }
150172 }
151173
152174 $ query ->where ("created_at " , "<= " , $ date ->endOfDay ());
153175 });
154176
177+
155178 return $ this ;
156179 }
157180
0 commit comments