PHP code example of sajadsdi / laravel-rest-response
1. Go to this page and download the library: Download sajadsdi/laravel-rest-response 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/ */
sajadsdi / laravel-rest-response example snippets
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, ValidatesRequests;
}
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use SajadSdi\LaravelRestResponse\Http\Controllers\RestController;
class Controller extends RestController
{
use AuthorizesRequests, ValidatesRequests;
}
namespace App\Http\Controllers\Banner;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BannerController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
// Your logic here
$data = ['key' => 'value',...];
return $this->response($data);//you can set custom message
}
/**
* Store a new resource.
*/
public function store(Request $request)
{
// Your logic here
$data = ['key' => 'value',...];
return $this->createResponse($data,'The banner was created successfully.');
}
/**
* Display the specified resource.
*/
public function single($id)
{
// Your logic here
$data = ['key' => 'value',...];
return $this->response($data);//you can set custom message
}
/**
* Update the specified resource.
*/
public function update($id,Request $request)
{
// Your logic here
$data = ['key' => 'value',...];
//response if banner $id found and updated
return $this->updateResponse($data);//you can set custom message
//response if banner $id not found
return $this->notFoundResponse('banner id not found');
}
/**
* Remove the specified resource.
*/
public function destroy($id)
{
// Your logic here
//response if banner $id found and deleted
return $this->deleteResponse();
//response if user unauthorized access
return $this->unauthorizedResponse();//you can set custom message and errors
//response if user forbidden access
return $this->forbiddenResponse();//you can set custom message and errors
}
}
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use SajadSdi\LaravelRestResponse\Http\Controllers\RestController;
class Controller extends RestController
{
use AuthorizesRequests, ValidatesRequests;
/**
* Get the version of the api.
*
* @return string
*/
protected function getVersion(): string
{
return '1.0.1';
}
}
namespace App\Http\Requests\Auth;
use Sajadsdi\LaravelRestResponse\Http\Requests\BaseRequest;
class LoginRequest extends BaseRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
//you can set message for authorize error before return false.
if(!is_admin){
$this->setAuthorizeError('you cant see!');
return false;
}
return true;
}
//your methods...
}
namespace App\Repositories;
use Sajadsdi\LaravelRestResponse\Contracts\CrudRepositoryInterface;
class YourModelRepository implements CrudRepositoryInterface {
// Implement the methods
}
namespace App\Http\Controllers;
use Sajadsdi\LaravelRestResponse\Concerns\CrudApi;
class YourController extends Controller {
use CrudApi;
public function __construct(YourModelRepository $repository) {
$this->repository = $repository;
}
// Now, you have access to createOperation, readOperation, and other methods
// for example we implement store function with createOperation function
public function store(YourCreateRequest $request)
{
return $this->createOperation($request->->validated());
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.