@pix3x Can you show your getServiceList() code from ServiceController?
And wrap your code with ``` so that it can be readable.
The table categories has 6 records.
The table services has 2 records.
bichon.shop/api/category-list (total_items: 6) works fine and returns all 6 records from DB. BUT bichon.shop/api/service-list (total_items: 0) returns zero items... what can be a problem here? Please help.
routes/api.php
Route::get('category-list',[API\CategoryController::class,'getCategoryList']);
Route::get('subcategory-list',[API\SubCategoryController::class,'getSubCategoryList']);
Route::get('service-list',[API\ServiceController::class,'getServiceList']);
Route::get('type-list',[API\CommanController::class,'getTypeList']);
bichon.shop/app/Http/Controllers/API/ServiceController.php
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Service;
use App\Models\Coupon;
use App\Models\BookingRating;
use App\Models\UserFavouriteService;
use App\Models\ServiceFaq;
use App\Http\Resources\API\ServiceResource;
use App\Http\Resources\API\UserResource;
use App\Http\Resources\API\ServiceDetailResource;
use App\Http\Resources\API\BookingRatingResource;
use App\Http\Resources\API\CouponResource;
use App\Http\Resources\API\UserFavouriteResource;
use App\Http\Resources\API\ProviderTaxResource;
use App\Models\ProviderServiceAddressMapping;
use App\Models\ProviderTaxMapping;
class ServiceController extends Controller
{
public function getServiceList(Request $request){
$service = Service::with(['providers','category','serviceRating']);
if($request->has('status') && isset($request->status)){
$service->where('status',$request->status);
}
if($request->has('provider_id')){
$service->where('provider_id',$request->provider_id);
}
if($request->has('category_id')){
$service->where('category_id',$request->category_id);
}
if($request->has('is_featured')){
$service->where('is_featured',$request->is_featured);
}
if($request->has('is_discount')){
$service->where('discount','>',0)->orderBy('discount','desc');
}
if($request->has('is_rating') && $request->is_rating != ''){
$service->whereHas('serviceRating', function($q) use ($request) {
$q->select('service_id',\DB::raw('round(AVG(rating),0) as total_rating'))->groupBy('service_id');
return $q;
});
}
if($request->has('is_price_min') && $request->is_price_min != '' || $request->has('is_price_max') && $request->is_price_max != ''){
$service->whereBetween('price', [$request->is_price_min, $request->is_price_max]);
}
if ($request->has('city_id')) {
$service->whereHas('providers', function ($a) use ($request) {
$a->where('city_id', $request->city_id);
});
}
if($request->has('provider_id') && $request->provider_id != '' ){
$service->whereHas('providers', function ($a) use ($request) {
$a->where('status', 1);
});
}else{
if(default_earning_type() === 'subscription'){
$service->whereHas('providers', function ($a) use ($request) {
$a->where('status', 1)->where('is_subscribe',1);
});
}
}
if ($request->has('latitude') && !empty($request->latitude) && $request->has('longitude') && !empty($request->longitude)) {
$get_distance = getSettingKeyValue('DISTANCE','DISTANCE_RADIOUS');
$get_unit = getSettingKeyValue('DISTANCE','DISTANCE_TYPE');
$locations = $service->locationService($request->latitude,$request->longitude,$get_distance,$get_unit);
$service_in_location = ProviderServiceAddressMapping::whereIn('provider_address_id',$locations)->get()->pluck('service_id');
$service->with('providerServiceAddress')->whereIn('id',$service_in_location);
}
if($request->has('search')){
$service->where('name','like',"%{$request->search}%");
}
$per_page = config('constant.PER_PAGE_LIMIT');
if( $request->has('per_page') && !empty($request->per_page)){
if(is_numeric($request->per_page)){
$per_page = $request->per_page;
}
if($request->per_page === 'all' ){
$per_page = $service->count();
}
}
$service = $service->where('status',1)->orderBy('created_at','desc')->paginate($per_page);
$items = ServiceResource::collection($service);
$response = [
'pagination' => [
'total_items' => $items->total(),
'per_page' => $items->perPage(),
'currentPage' => $items->currentPage(),
'totalPages' => $items->lastPage(),
'from' => $items->firstItem(),
'to' => $items->lastItem(),
'next_page' => $items->nextPageUrl(),
'previous_page' => $items->previousPageUrl(),
],
'data' => $items,
'max'=> $service->max('price'),
'min'=> $service->min('price'),
];
return comman_custom_response($response);
} ```
```-bash-4.2$ php artisan route:list --method=GET --name=service
+--------+----------+------------------------------+-------------------+--------------------------------------------------+--------------------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+------------------------------+-------------------+--------------------------------------------------+--------------------------------------------------+
| | GET|HEAD | service | service.index | App\Http\Controllers\ServiceController@index | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | service/create | service.create | App\Http\Controllers\ServiceController@create | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | service/{service} | service.show | App\Http\Controllers\ServiceController@show | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | service/{service}/edit | service.edit | App\Http\Controllers\ServiceController@edit | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | servicefaq | servicefaq.index | App\Http\Controllers\ServiceFaqController@index | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | servicefaq/create | servicefaq.create | App\Http\Controllers\ServiceFaqController@create | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | servicefaq/{servicefaq} | servicefaq.show | App\Http\Controllers\ServiceFaqController@show | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | servicefaq/{servicefaq}/edit | servicefaq.edit | App\Http\Controllers\ServiceFaqController@edit | web |
| | | | | | App\Http\Middleware\Authenticate |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
+--------+----------+------------------------------+-------------------+--------------------------------------------------+--------------------------------------------------+```
@pix3x Interesting...
What exactly you are getting if you dd() following query beginning of your function?
$services = Service::with(['providers', 'category', 'serviceRating'])
->where('status', 1)
->orderBy('created_at', 'desc')
->get();
dd($services);
Please or to participate in this conversation.