psprokofiev/laravel-repository

1.8 2024-05-01 19:49 UTC

This package is auto-updated.

Last update: 2024-10-01 00:14:15 UTC


README

/**
 * Class LaravelRepository
 * @package Psprokofiev\LaravelRepository
 * 
 * @method \Illuminate\Database\Eloquent\Model getSingle($id, string $key = 'id', $columns = ['*'])
 * @method \Illuminate\Database\Eloquent\Model|null findSingle($id, string $key = 'id', $columns = ['*'])
 * @method \Illuminate\Database\Eloquent\Builder query() 
 */

创建新仓库

php artisan make:repository User

将为\App\Models\User创建\App\Repositories\UserRepository

将仓库特质添加到你的模型中

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Psprokofiev\LaravelRepository\InteractsWithRepository;

class User extends Model {
    use InteractsWithRepository;
  
  //
}

你可以使用静态变量重新定义仓库类

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Psprokofiev\LaravelRepository\InteractsWithRepository;

class User extends Model {
    use InteractsWithRepository;
    
    protected static $repository = \App\Another\Namespace\UserRepository::class;
  
  //
}

单模型

\App\Models\User::repository()->getSingle(1);
App\Models\User {#4107
     id: "1",
     name: "Mr. Denis Rolfson III",
     email: "maximus.dubuque@example.net",
     email_verified_at: "2021-04-09 20:29:24",
     created_at: "2021-04-09 20:29:24",
     updated_at: "2021-04-09 20:29:24",
   }