daikazu / eloquent-salesforce-objects
A Laravel package that provides an Eloquent-style interface for interacting with Salesforce objects.
Package info
github.com/daikazu/eloquent-salesforce-objects
pkg:composer/daikazu/eloquent-salesforce-objects
Fund package maintenance!
Requires
- php: ^8.4
- illuminate/contracts: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- omniphx/forrest: ^3.0
- spatie/laravel-package-tools: ^1.92
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0|^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- rector/rector: ^2.1
This package is auto-updated.
Last update: 2026-03-27 19:48:13 UTC
README
Eloquent Salesforce Objects
A Laravel package that lets you work with Salesforce objects using Eloquent syntax. Built on top of omniphx/forrest for authentication and API communication.
This package was heavily inspired by fabulous roblesterjr04/EloquentSalesForce, but written from the ground up with modern PHP 8.4+, full type safety, and a cleaner architecture. If you're migrating from that package, see the migration guide.
Features
- Eloquent-Style Models - Define Salesforce objects using familiar Laravel model syntax
- CRUD Operations - Create, read, update, and delete Salesforce records
- Relationships -
hasMany,belongsTo, andhasOne - Batch Queries - Execute multiple SOQL queries in a single API call
- Bulk Operations - Efficient bulk insert, update, and delete
- Aggregate Functions - COUNT, SUM, AVG, MIN, MAX
- Pagination - Built-in pagination with Laravel's paginator
- Apex REST - Call custom Apex REST endpoints
- Model Generator -
php artisan make:salesforce-modelscaffolds models from live Salesforce metadata
Requirements
- PHP 8.4+
- Laravel 12.0+
- Salesforce account with API access
Quick Start
composer require daikazu/eloquent-salesforce-objects
Configure omniphx/forrest with your Salesforce credentials, then scaffold a model:
php artisan make:salesforce-model Account
Or define one manually:
use Daikazu\EloquentSalesforceObjects\Models\SalesforceModel; class Account extends SalesforceModel { protected ?array $defaultColumns = [ 'Name', 'Industry', 'AnnualRevenue', ]; }
Query with familiar Eloquent syntax:
$accounts = Account::where('Industry', 'Technology') ->orderBy('Name') ->get(); $account = Account::create(['Name' => 'Acme Corp']); $account->update(['Industry' => 'Manufacturing']); $account->delete(); $account->contacts; // hasMany $contact->account; // belongsTo
See the Quickstart Guide for a full walkthrough.
Documentation
Getting Started
Core Concepts
- Model Generator - Scaffold models from live metadata
- Models - Defining and configuring models
- Querying Data - Building SOQL queries
- CRUD Operations - Create, read, update, delete
- Relationships - hasMany, belongsTo, hasOne
- Timestamps - Carbon date handling
Advanced
- Batch Queries - Multiple queries in one API call
- Bulk Operations - Bulk insert, update, delete
- Apex REST - Custom Apex REST endpoints
- Aggregate Functions - COUNT, SUM, AVG, MIN, MAX
- Pagination - Paginating results
Reference
Testing
composer test
Credits
License
MIT. See LICENSE.
Need help? Check the docs or open an issue.