psprokofiev / laravel-repository
Laravel 仓库模式
1.8
2024-05-01 19:49 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: ^7.0|^8.0|^9.0|^10.0|^11.0
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",
}