synergitech/laravel-salesforce

此包使用 omniphx/forrest 以 Eloquent 风格查询 Salesforce 的 sObjects。

v0.2.1 2023-09-12 10:11 UTC

This package is auto-updated.

Last update: 2024-09-13 12:06:43 UTC


README

Tests

此包使用 omniphx/forrest 以 Eloquent 风格查询 Salesforce 的 sObjects。

⚠️ 这是一个初始版本,仅允许选择数据。新版本将旨在提供更完整的功能。

入门指南

按照 omniphx/forrest 提供的说明连接到您的 Salesforce 环境。完成后,您可以使用 SynergiTech\Salesforce\Facades\Salesforce 门面执行特定表的查询,如下所示

use SynergiTech\Salesforce\Facades\Salesforce;

// Get an individual record by Id
Salesforce::table('MyTable')->find('YourIdHere');

可用方法

find

允许您通过 ID 直接拉取单个记录作为数组。您也可以指定另一个字段名作为第二个参数。如果您指定了一个非唯一列并且返回了多个记录,则始终返回第一个记录。

用法

Salesforce::table('MyTable')->find('YourIdHere');

findMany

允许您直接通过提供相应 ID 字段的数组拉取多个记录作为 Laravel Collection。您也可以指定另一个字段名作为第二个参数。

用法

Salesforce::table('MyTable')->findMany(['YourId1Here', 'YourId2Here']);

create

允许您使用字段的数组在指定的表中创建新记录。

用法

$response = Salesforce::table('MyTable')->create([
    'Name' => 'John Doe',
]);

预期响应

[
    'id' => '', // Salesforce Id
    'success' => true,
    'errors' => [],
    'data' => [
        // Full record data
    ],
]

update

允许您使用 Salesforce ID 和字段的数组更新记录。

用法

$response = Salesforce::table('MyTable')->update('Id', [
    'Name' => 'John Doe',
]);

预期响应

参见上面的 'create' 部分

createOrUpdate

允许您使用 ID 字段和关联值进行 upsert 操作。

用法

$response = Salesforce::table('MyTable')->createOrUpdate('My_External_Id__c', 'ExternalId', [
    'Name' => 'John Doe',
]);

预期响应

[
    'id' => '', // Salesforce Id
    'success' => true,
    'errors' => [],
    'created' => true, // True/False depending on whether the record was created or updated
    'data' => [
        // Full record data
    ],
]

delete

允许您通过 ID 删除记录,如果成功则返回 true。

用法

Salesforce::table('MyTable')->delete('Id');

查询构建器

此包允许您使用查询构建器方法对获取调用进行范围限定。查询构建器目前 不能updatedelete 方法一起使用(抱歉 🙏)。

where

您还可以使用 where 子句限定查询。

// Basic where clause
Salesforce::table('MyTable')->where('Name', 'John Doe')->get();

// You can also use any of the following operators

// Equals and Not Equals
Salesforce::table('MyTable')->where('Name', '=', 'John Doe')->get();
Salesforce::table('MyTable')->where('Name', '!=', 'John Doe')->get();

// Comparisons
Salesforce::table('MyTable')->where('Age', '<', 30)->get();
Salesforce::table('MyTable')->where('Age', '<=', 30)->get();
Salesforce::table('MyTable')->where('Age', '>', 30)->get();
Salesforce::table('MyTable')->where('Age', '>=', 30)->get();

// Like
Salesforce::table('MyTable')->where('Name', 'LIKE', 'John %')->get();
Salesforce::table('MyTable')->where('Name', 'LIKE', '% Middlename %')->get();
Salesforce::table('MyTable')->where('Name', 'LIKE', '% Doe')->get();

whereIn

您可以将可能的值数组提供给 whereIn 方法以选择匹配任何值的任何记录。

Salesforce::table('MyTable')->whereIn('Country', ['United Kingdom', 'United States'])->get();

orderBy

您可以按特定字段以升序或降序排序。

// Ascending (default)
Salesforce::table('MyTable')->orderBy('Age')->get();

// Descending
Salesforce::table('MyTable')->orderBy('Age', 'DESC')->get();

nullsLast

默认情况下,在链式调用 orderBy 时,null 值首先返回。您可以通过链式调用 ->nullsLast() 来返回 null 值。

Salesforce::table('MyTable')->orderBy('LastLoginDate')->nullsLast()->get();

limit

您可以限制返回的记录数量。

Salesforce::table('MyTable')->where('Name', 'LIKE', 'John%')->limit(20)->get();

异常

默认情况下,omniphx/forrest 通常抛出一个包含更多详细信息的 JSON 编码字符串的单个异常。我们对其中的某些异常进行了包装,以帮助调试。