aacassandra/parsequent

使用Parsequent节省您的宝贵时间,用于CRUD操作您的Laravel项目并通过Parse REST API

1.1.6 2021-01-05 15:29 UTC

This package is auto-updated.

Last update: 2024-09-05 23:41:03 UTC


README

Parse Eloquent

这是一个专门用于CRUD操作的Laravel框架的包。此包使用Laravel Eloquent风格,并不会改变默认的Eloquent风格。只是这个包使得我们能够更方便地执行CRUD操作,而不需要在关联控制器中包含模型依赖。

支持的功能

  • 创建
  • 读取
  • 更新
  • 删除
  • 批量操作
  • 对象计数
  • 登录
  • 登出
  • 验证电子邮件
  • 密码重置
  • 验证会话令牌
  • 创建用户
    • 带角色[可选]
  • 读取用户
  • 更新用户
    • 带角色[可选]
  • 删除用户
  • 创建角色
  • 读取角色
  • 更新角色
  • 删除角色

Laravel中的安装

此包可用于Laravel 5或更高版本。

  1. 此包发布了一个config/parsequent.php文件。如果您已经有了同名文件,则必须重命名或删除它。

  2. 您可以通过composer安装此包

composer require aacassandra/parsequent
  1. 在config/app.php文件中的$providers数组中添加服务提供者
'providers' => [
    /*
    * Package Service Providers
    */
    // ...
    Parsequent\ParseProvider::class,
];
  1. 将此包的外观添加到$aliases数组中。
'aliases' => [
    // ...
    'Parse' => Parsequent\Parse::class,
]
  1. 您必须发布配置,它将后来在config/parsequent.php配置文件中
php artisan vendor:publish --provider="Parsequent\ParseProvider"
  1. 现在Parse类将由Laravel自动加载。

对象格式

示例

1. 创建

要在Parse中创建一个新对象,您可以按照以下示例进行操作

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $create = Parse::Create('GameScore', [
      'score' => 1337,
      'playerName' => 'Sean Plott',
      'cheatMode' => false
    ]);
    if($create->status){
      // handling success
    }else{
      // handling error
    }
  }
}

响应体是一个包含新创建对象的objectId和createdAt时间戳的JSON对象

{
  "output": {
    "createdAt": "2011-08-20T02:06:57.931Z",
    "objectId": "Ed1nuqPvcm"
  },
  "code": 201,
  "status": true
}

2. 读取

创建对象后,您可以通过调用方法来检索其内容。例如,要检索上面创建的对象

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $read = Parse::Read('GameScore', [
      'objectId' => 'Ed1nuqPvcm'
    ]);
    if($read->status){
      // handling success
    }else{
      // handling error
    }
  }
}

响应体是一个包含所有用户提供的字段以及createdAt、updatedAt和objectId字段的JSON对象

{
  "output": {
    "score": 1337,
    "playerName": "Sean Plott",
    "cheatMode": false,
    "skills": [
      "pwnage",
      "flying"
    ],
    "createdAt": "2011-08-20T02:06:57.931Z",
    "updatedAt": "2011-08-20T02:06:57.931Z",
    "objectId": "Ed1nuqPvcm"
  },
  "code": 200,
  "status": true
}

3. 更新

要更改已存在对象上的数据,请调用Parse::Update方法。您没有指定的任何键将保持不变,因此您可以只更新对象数据的一部分。例如,如果我们想更改特定对象的分数字段

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $update = Parse::Update('GameScore', [
        'score' => 73453
    ], [
        'objectId' => 'Ed1nuqPvcm'
    ]);
    if($update->status){
      // handling success
    }else{
      // handling error
    }
  }
}

响应体是一个仅包含更新时间戳的updatedAt字段的JSON对象

{
  "output": {
    "updatedAt": "2011-08-21T18:02:52.248Z"
  },
  "code": 200,
  "status": true
}

如果您想通过条件更改多行,请在options中添加where / orwhere参数。这里我们将运行'Batch',一次性更新多行。

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $update = Parse::Update('GameScore', [
        'score' => 73453
    ], [
        'where' => [
          ['cheatMode', 'equalTo', false]
        ]
    ]);
    if($update->status){
      // handling success
    }else{
      // handling error
    }
  }
}

由于要一次性更新多行,我们使用了'Batch',如官方页面所述。批处理响应将是一个与输入列表元素数量相同的列表。列表中的每个项目都是一个字典,其中设置了成功或错误字段。成功的值是对应REST命令的正常响应

{
  "output": [
    [
      "succes": [
        "updatedAt": "2020-12-10T08:04:47.256Z"
      ]
    ],
    ...
  ],
  "code": 200,
  "status": true
}

4. 删除

要从Parse Cloud中删除对象,您可以使用Parse::Delete方法。与更新对象方法相同。您可以一次性删除单个对象或多个对象。要删除单个对象,请看以下示例

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $delete = Parse::Delete('GameScore', [
      'objectId' => 'Ed1nuqPvcm'
    ]);
    if($delete->status){
      // handling success
    }else{
      // handling error
    }
  }
}

响应体是一个包含所有用户提供的字段以及createdAt、updatedAt和objectId字段的JSON对象

{
  "output": {},
  "code": 200,
  "status": true
}

而要一次性删除多个对象,您可以这样做

<?php
namespace App\Http\Controllers;
use Parsequent\Parse;
class DevController extends Controller
{
  public function dev(Request $request)
  {
    $delete = Parse::Delete('GameScore', [
        'where' => [
          ['cheatMode', 'equalTo', true]
        ]
    ]);
    if($delete->status){
      // handling success
    }else{
      // handling error
    }
  }
}

然后响应将如下所示

{
  "output": [
    [
      "succes": {}
    ],
    ...
  ],
  "code": 200,
  "status": true
}

许可证

本项目采用MIT许可证 - 详细信息请参阅LICENSE.md文件