I use Eloquent PHP as ORM and implement query builder for my web applications.
Usually, it works when the code looks like this.
$builder = Area::query()->limit(30);
if ($subDistrictCode = $request->getParam('sub_district_code')) {
$builder->where('sub_district_code', $subDistrictCode);
}
if ($districtCode = $request->getParam('district_code')) {
$builder->where('district_code', $districtCode);
}
$areasCount = $builder->count();
if ($limit = $request->getParam('length')) {
$builder->limit($limit);
}
if ($offset = $request->getParam('start')) {
$builder->offset($offset);
}
$areas = $builder->orderBy('province','ASC')->get();
But when I use an attribute from an object I got this error:
Call to undefined method Erdkk\Models\Areas::getIdAttribute()
The code looks like this.
$builder = Area::query()->limit(30);
if ($subDistrictCode = $request->getParam('sub_district_code')) {
$builder->where('sub_district_code', $subDistrictCode['id']);
}
if ($districtCode = $request->getParam('district_code')) {
$builder->where('district_code', $districtCode);
}
$areasCount = $builder->count();
if ($limit = $request->getParam('length')) {
$builder->limit($limit);
}
if ($offset = $request->getParam('start')) {
$builder->offset($offset);
}
$areas = $builder->orderBy('province','ASC')->get();