PHP code example of nathandunn / model-repositories

1. Go to this page and download the library: Download nathandunn/model-repositories 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/ */

    

nathandunn / model-repositories example snippets


$records = Record::where('user_id', $user->id)->paginate();

$records = $recordRepository->getPaginatedForUser($user);



namespace App\Records;

use App\Users\User;
use Illuminate\Database\Eloquent\Builder;
use NathanDunn\Repositories\Repository;

class RecordRepository extends Repository
{
    public function __construct(Record $record)
    {
        parent::__construct($record);
    }

    public function forUser(User $user): Builder
    {
        return $this->model->where('user_id', '=', $user->id);
    }
}



namespace App\Http\Controllers;

use App\Http\Resources\RecordResource;
use App\Records\RecordRepository;
use Illuminate\Http\Request;

class RecordsController extends Controller
{
    public function __construct(
        protected RecordRepository $recordRepository
    ) {}

    public function index(Request $request)
    {
        $records = $this->recordRepository->getPaginatedForUser($request->user());

        return RecordResource::collection($records);
    }
}

$repo->getForUser($user);              // ->forUser()->get()
$repo->getPaginatedForUser($user);     // ->forUser()->paginate()
$repo->getCountForUser($user);         // ->forUser()->count()