src/Templates/CRUD/Service.txt
<?php
namespace _namespace_services_;
use Illuminate\Support\Facades\Schema;
use _namespace_model_\_camel_case_;
class _camel_case_Service
{
public function __construct(_camel_case_ $_lower_case_)
{
$this->model = $_lower_case_;
}
public function all()
{
return $this->model->all();
}
public function paginated()
{
$model = $this->model;
if (isset(request()->dir) && isset(request()->field)) {
$model = $model->orderBy(request()->field, request()->dir);
} else {
$model = $model->orderBy('created_at', 'desc');
}
return $model->paginate(config('cms.pagination', 25));
}
public function search($payload)
{
$query = $this->model->orderBy('created_at', 'desc');
$query->where('id', 'LIKE', '%'.$payload.'%');
$columns = Schema::getColumnListing('_lower_casePlural_');
foreach ($columns as $attribute) {
$query->orWhere($attribute, 'LIKE', '%'.$payload.'%');
};
return $query->paginate(config('cms.pagination', 24));
}
public function create($payload)
{
return $this->model->create($payload);
}
public function find($id)
{
return $this->model->find($id);
}
public function update($id, $payload)
{
return $this->find($id)->update($payload);
}
public function destroy($id)
{
return $this->model->destroy($id);
}
}