1. Go to this page and download the library: Download goodmartian/baserepo 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/ */
goodmartian / baserepo example snippets
namespace App\Repositories;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
use Jsdecena\Baserepo\BaseRepository;
class UserRepository extends BaseRepository {
public function __construct(User $user)
{
parent::__construct($user);
}
public function createUser(array $data) : User
{
try {
return $this->create($data);
} catch (QueryException $e) {
throw new \Exception($e);
}
}
}
use App\Http\Controllers\Controller;
use App\Repositories\UserRepository;
use App\User;
class MyController extends Controller {
private $userRepository;
/**
*
* Inject your repository or the interface here
*/
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
public function index()
{
$user = $this->userRepository->all();
return response()->json($user);
}
public function store(Request $request)
{
// do data validation
try {
$user = $this->userRepository->createUser($request->all());
return response()->json($user, 201);
} catch (Illuminate\Database\QueryException $e) {
return response()->json([
'error' => 'user_cannot_create',
'message' => $e->getMessage()
]);
}
}
public function show($id)
{
// do data validation
try {
$user = $this->userRepository->findOneOrFail($id);
return response()->json($user);
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
return response()->json([
'error' => 'user_no_found',
'message' => $e->getMessage()
]);
}
}
public function update(Request $request, $id)
{
// do data validation
try {
$user = $this->userRepository->findOneOrFail($id);
// You can also do this now, so you would not have to instantiate again the repository
$this->userRepository->update($request->all(), $user);
return response()->json($user);
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
return response()->json([
'error' => 'user_no_found',
'message' => $e->getMessage()
]);
} catch (Illuminate\Database\QueryException $e) {
return response()->json([
'error' => 'user_cannot_update',
'message' => $e->getMessage()
]);
}
}
public function destroy($id)
{
// do data validation
try {
$user = $this->userRepository->findOneOrFail($id);
// Create an instance of the repository again
// but now pass the user object.
// You can DI the repo to the controller if you do not want this.
$userRepo = new UserRepository($user);
$userRepo->delete()
return response()->json(['data' => 'User deleted.']);
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
return response()->json([
'error' => 'user_no_found',
'message' => $e->getMessage()
]);
} catch (Illuminate\Database\QueryException $e) {
return response()->json([
'error' => 'user_cannot_delete',
'message' => $e->getMessage()
]);
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.