1. Go to this page and download the library: Download lagumen/laravel-essentials 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/ */
use Lagumen\LaravelEssential\Concerns\LaravelEssentialRepository;
use Lagumen\LaravelEssential\Interfaces\LaravelEssentialRepositoryInterface;
use Lagumen\LaravelEssential\LaravelEssentialSearchableModel;
use App\Models\User;
class UserRepository extends LaravelEssentialRepository implements LaravelEssentialRepositoryInterface
{
public function __construct(User $model)
{
$this->model = $model;
}
// We will use this later. ;)
public function getAllFilteredUsers(array $filters = [])
{
return $this->model->query()->filter($filters);
}
public function createUser(array $data)
{
/** @var User $user */
$user = $this->create($data);
$user->setting()->create(['timezone' => $data['timezone'] ?? 'UTC']);
return $user->load('setting');
}
}
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\Repositories\UserRepository;
class UsersController extends Controller
{
protected $repository;
public function __construct(UserRepository $repository)
{
$this->repository = $repository;
}
public function index(Request $request)
{
$users = $this->repository->getAllFilteredUsers($request->all());
return response()->json($users);
}
public function store(Request $request)
{
$user = $this->repository->createUser($request->all());
return response()->json($user);
}
}