synergitech / laravel-salesforce
此包使用 omniphx/forrest 以 Eloquent 风格查询 Salesforce 的 sObjects。
Requires
- php: ^8.0
- illuminate/collections: ^8.0 || ^9.0 || ^10.0
- illuminate/support: ^8.0 || ^9.0 || ^10.0
- omniphx/forrest: ^2.0
Requires (Dev)
- orchestra/testbench: ^6.0 || ^7.0 || ^8.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-13 12:06:43 UTC
README
此包使用 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');
查询构建器
此包允许您使用查询构建器方法对获取调用进行范围限定。查询构建器目前 不能 与 update
或 delete
方法一起使用(抱歉 🙏)。
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 编码字符串的单个异常。我们对其中的某些异常进行了包装,以帮助调试。