aacassandra / parsequent
使用Parsequent节省您的宝贵时间,用于CRUD操作您的Laravel项目并通过Parse REST API
README
Parse Eloquent
这是一个专门用于CRUD操作的Laravel框架的包。此包使用Laravel Eloquent风格,并不会改变默认的Eloquent风格。只是这个包使得我们能够更方便地执行CRUD操作,而不需要在关联控制器中包含模型依赖。
支持的功能
- 创建
- 读取
- 更新
- 删除
- 批量操作
- 对象计数
- 登录
- 登出
- 验证电子邮件
- 密码重置
- 验证会话令牌
- 创建用户
- 带角色[可选]
- 读取用户
- 更新用户
- 带角色[可选]
- 删除用户
- 创建角色
- 读取角色
- 更新角色
- 删除角色
Laravel中的安装
此包可用于Laravel 5或更高版本。
-
此包发布了一个config/parsequent.php文件。如果您已经有了同名文件,则必须重命名或删除它。
-
您可以通过composer安装此包
composer require aacassandra/parsequent
- 在config/app.php文件中的$providers数组中添加服务提供者
'providers' => [
/*
* Package Service Providers
*/
// ...
Parsequent\ParseProvider::class,
];
- 将此包的外观添加到$aliases数组中。
'aliases' => [
// ...
'Parse' => Parsequent\Parse::class,
]
- 您必须发布配置,它将后来在config/parsequent.php配置文件中
php artisan vendor:publish --provider="Parsequent\ParseProvider"
- 现在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文件