daikazu/eloquent-salesforce-objects
| Install | |
|---|---|
composer require daikazu/eloquent-salesforce-objects |
|
| Latest Version: | v2.0.1 |
| PHP: | ^8.4 |
| Laravel: | 12 · 13 |
| License: | MIT |
| Last Updated: | Oct 2, 2026 |
| Links: | GitHub · Packagist |
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, upsert by External Id, 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 using an OAuth flow such as ClientCredentials (avoid UserPasswordSoap, which relies on the SOAP API login() call Salesforce is retiring; see Installation), 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
AI Agent Skills (Laravel Boost)
The package ships two Laravel Boost skills that teach AI coding agents (Claude Code, Cursor, Codex, etc.) how to use it correctly:
| Skill | Use it for |
|---|---|
eloquent-salesforce-objects-development |
Defining models, querying, CRUD, bulk and batch operations, metadata, Apex REST, and testing against Salesforce |
migrating-from-eloquent-salesforce |
Moving an app from roblesterjr04/EloquentSalesForce to this package |
If your app uses Boost, the skills are offered automatically when you run:
php artisan boost:install
# or, if Boost is already installed
php artisan boost:update --discover
Testing
composer test
Credits
License
MIT. See LICENSE.
Need help? Check the docs or open an issue.
Related Packages
This package uses omniphx/forrest to provide an Eloquent-style way of querying s...
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v2.0.1 | ^8.4 | ^12.0| | MIT | |
| v2.0.0 | ^8.4 | ^12.0| | MIT | |
| v1.1.0 | ^8.4 | ^12.0| | MIT | |
| v1.0.3 | ^8.4 | ^12.0| | MIT | |
| v1.0.2 | ^8.4 | ^12.0| | MIT | |
| v1.0.1 | ^8.4 | ^12.0| | MIT | |
| v1.0.0 | ^8.4 | ^12.0| | MIT |
Pre-releases (2)
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.0.0-beta.1 | ^8.4 | ^12.0 | MIT | |
| v1.0.0-beta | ^8.4 | ^12.0 | MIT |