arafat69/laravel-repository

简单的Laravel仓库模式

v1.2.1 2024-06-07 13:20 UTC

This package is auto-updated.

Last update: 2024-09-07 14:10:23 UTC


README

Packagist Stars GitHub issues Total Downloads Latest Stable Version License

laravel-repository

简单但强大的Laravel仓库模式

安装

composer require arafat69/laravel-repository

安装包后,您将在 repositories 文件夹内看到一个名为 repository.php 的文件

##创建仓库

php artisan make:repository UserRepository
or
// use scope for specific model
php artisan make:repository UserRepository --model=User

如何在仓库中创建函数

//Create
public static function storeByRequest($request): User
{
    return self::create([
        'first_name' => $request->first_name,
        'last_name' => $request->last_name,
        'email' => $request->email,
        // ...
    ]);
}

// Update
public static function updateByRequest($request, User $user): User
{
    self::update($user, [
        'first_name' => $request->first_name,
        'last_name' => $request->last_name,
        'email' => $request->email,
        // ...
    ]);

    // or

    $user->update([
        // your update data
    ])

    return $user;
}
// etc...

从控制器使用

首先导入仓库

//example UserRepository
use App\Repositories\UserRepository;
// get all user
UserRepository::getAll(); //retun all users
// filter user use query
UserRepository::query()->whereName('jon')->get();
// store method call 
UserRepository::storeByRequest($request);
// update method call 
UserRepository::updateByRequest($request, $user);
//find
UserRepository::find($userID);
//get first recode
UserRepository::first();
// delete recode
UserRepository::delete($userID);

发布存根文件夹

php artisan vendor:publish --tag=stubs

贡献

您可以创建任何Pull request。