Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function index(Request $request)
- {
- try {
- // Create a query builder instance for Product resource
- $products = Product::query();
- // Filter by make
- if($request->has('make')) {
- $products = $products->where('make', $request->input('make'));
- }
- // Concatenate search parameters if defined
- if($request->has('query')) {
- $products = $products->where(function($query){
- $query->where('name','like','%'. $request->input('query') .'%')
- ->orWhere('alias','like','%'. $request->input('query') .'%');
- });
- }
- // Concatinate sorting function if defined
- if($request->has(['sortBy', 'sortType'])) {
- if(in_array($request->input('sortBy'), $this->sortableColumns)){
- $products = $products->orderBy($request->input('sortBy'), $request->input('sortType'));
- } else {
- return response()->json([
- 'message' => "Incorrect request!"
- ],500);
- }
- }
- // Get Products and return
- return $products->simplePaginate(30)->appends(request()->query());
- } catch (\Exception $e){
- report($e);
- return response()->json([
- 'status' => false,
- 'message' => "Something went really wrong!"
- ]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement