PHP code example of iqbalatma / laravel-service-repo
1. Go to this page and download the library: Download iqbalatma/laravel-service-repo library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
iqbalatma / laravel-service-repo example snippets
namespace App\Repositories;
use Iqbalatma\LaravelServiceRepo\BaseRepository;
use Illuminate\Database\Eloquent\Builder;
use App\Models\User;
class UserRepository extends BaseRepository
{
/**
* use to set base query builder
* @return Builder
*/
public function getBaseQuery(): Builder
{
return User::query();
}
/**
* use this to add custom query on filterColumn method
* @return void
*/
public function applyAdditionalFilterParams(): void
{
}
}
namespace App\Services\Management;
use Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
use Illuminate\Pagination\LengthAwarePaginator;
class UserService extends BaseService
{
public function getAllDataPaginated():LengthAwarePaginator
{
return UserRepository::getAllDataPaginated();
}
}
namespace App\Services\Management;
use Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
use Illuminate\Pagination\LengthAwarePaginator;
class UserService extends BaseService
{
public function getAllDataPaginated():LengthAwarePaginator
{
return (new UserRepository())->getAllDataPaginated();
}
}
function getAllDataPaginated(array $whereClause = [], array $columns = ["*"]);
function getAllData(array $whereClause = [], array $columns = ["*"]);
function getDataById(string|int|array $id, array $columns = ["*"]);
function getSingleData(array $whereClause = [], array $columns = ["*"]);
function addNewData(array $requestedData);
function updateDataById(string|int $id, array $requestedData, array $columns = ["*"], bool $isReturnObject = true);
function updateDataByWhereClause(array $whereClause, array $requestedData, array $columns = ["*"], bool $isReturnObject = false);
function deleteDataById(string|int $id);
function deleteDataByWhereClause(array $whereClause);
function with(array|string $relations);
function without(array|string $relations);
function withAvg(array|string $relation, string $column);
function withCount(mixed $relations);
function withMin(array|string $relation, string $column);
function withMax(array|string $relation, string $column)
function withSum(array|string $relation, string $column);
function has(Relation|string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null);
function whereHas(string $relation, Closure|null $callback = null, string $operator = '>=', int $count = 1);
and other method ....
namespace App\Services\Management;
use Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
use Illuminate\Pagination\LengthAwarePaginator;
class UserService extends BaseService
{
public function getAllDataPaginated():LengthAwarePaginator
{
return UserRepository::with('profile')->getAllDataPaginated();
}
}
namespace App\Repositories;
use Iqbalatma\LaravelServiceRepo\BaseRepository;
use Illuminate\Database\Eloquent\Builder;
use App\Models\User;
class UserRepository extends BaseRepository
{
/**
* use to set base query builder
* @return Builder
*/
public function getBaseQuery(): Builder
{
return User::query();
}
/**
* use this to add custom query on filterColumn method
* @return void
*/
public function applyAdditionalFilterParams(): void
{
}
public function queryGetAllActiveUser(){
return $this->builder->where('status', 'active')->get();
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
class Tag extends Model
{
use HasFactory;
protected $fillable = [
"name"
];
public function scopeActive(Builder $query){
$query->where('status', '=', 'active');
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class User extends Model
{
use HasFactory;
public array $orderableColumns = [
"name" => "users.name",
"address" => "users.address",
];
}
namespace App\Services\Management;
Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
class UserService extends BaseService
{
public function getAllDataPaginated(){
return UserRepository::orderColumn()->getAllDataPaginated();
}
}
namespace App\Services\Management;
Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
class UserService extends BaseService
{
public function getAllDataPaginated(){
return UserRepository::orderColumn([
"name" => "users.name",
"address" => "users.address",
])->getAllDataPaginated();
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class User extends Model
{
use HasFactory;
public array $filterableColumns = [
"name" => "users.name",
"address" => "users.address",
];
}
namespace App\Services\Management;
Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
class UserService extends BaseService
{
public function getAllDataPaginated(){
return UserRepository::orderColumn()->filterColumn()->getAllDataPaginated();
}
}
namespace App\Services\Management;
Iqbalatma\LaravelServiceRepo\BaseService;
use App\Repositories\UserRepository;
class UserService extends BaseService
{
public function getAllDataPaginated(){
return UserRepository::orderColumn()->filterColumn([
"name" => "users.name",
"address" => "users.address",
])->getAllDataPaginated();
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use App\Models\Profile;
class User extends Model
{
use HasFactory;
public array $filterableColumns = [
"name" => "users.name",
"address" => "users.address",
];
public array $relationFilterableColumns = [
"profile" => [
"phone" => "profiles.pone"
]
];
public function profile(){
return $this->belongsTo(Profile::class);
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class User extends Model
{
use HasFactory;
public array $filterableColumns = [
"name" => [
"column" => "users.name"
"operator" => "like"
],
"address" => "users.address",
];
}
php artisan make:service UserService
php artisan make:repository UserRepository
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.