gridprinciples/repository

该软件包最新版本(0.1.1)没有可用的许可证信息。

0.1.1 2015-11-18 06:08 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:26:03 UTC


README

为 Laravel 5.1 提供的简单 Eloquent 仓库。

安装

  1. 在项目目录中运行 composer require gridprinciples/repository

  2. 将以下内容添加到 config/app.php 文件中的 providers 数组中

    GridPrinciples\Repository\RepositoryServiceProvider::class,
  3. 在应用程序的某个位置创建一个 Repositories 文件夹,例如 app/Repositories

使用方法

  1. 通过扩展 GridPrinciples\Repository 创建新的仓库

    <?php
    
    namespace App\Repositories;
    
    use GridPrinciples\EloquentRepository;
    
    class FooRepository extends EloquentRepository {
        protected static $model = \App\Foo::class;
    }
  2. (推荐) 在你的控制器中使用你的仓库

    <?php
    
    namespace App\Http\Controllers;
    
    use App\Repositories\FooRepository;
    
    public function __construct(FooRepository $repository)
    {
        $this->repository = $repository;
    }
    
    public function somePage($id)
    {
        $model = $this->repository->get($id);
    
        if(!$model) {
            // Model not found.
            return abort(404);
        }
    
        return view('my_view', [
            'foo' => $model,
        ]);
    }

EloquentRepository 包含一些基本的 CRUD 功能

创建

你可以通过传递一个包含数据的数组来调用 save,以便创建新的模型/记录。

$newModel = $this->repository->save([
    'title' => 'This is indicative of a title',
    'description' => 'You might have a description field, perhaps.',
]);

建议你填充模型的 $fillable 数组,以避免大量赋值问题。

读取

你可以使用 get 通过键(通常是 id)选择一个或多个记录。

$singleModel = $this->repository->get(1);
$multipleModels = $this->repository->get([2, 3, 4]);

如果你想要检索多个模型并对它们进行分页,请使用 index 方法。

$pageOfModels = $this->repository->index(10); // 10 records per page

更新

你可以通过使用 save 方法以非常相似的方式更新模型,同样使用 save 方法。

$data = [
    'status' => 'active',
];
$id = 1;

$this->repository->save($data, $id);

你还可以将一个键数组作为 save 的第二个参数传递,以一次性更新多个记录。

删除

可以使用 delete 方法轻松删除模型。

$this->repository->delete($id);

你还可以将一个键数组传递给 delete,以一次性删除多个记录。

许可证

这是一个开源软件,根据 MIT 许可证 授权。