Search by

daikazu / eloquent-salesforce-objects

daikazu

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!

Daikazu

Statistics

Installs: 11 349

Dependents: 1

Suggesters: 0

Stars: 10

Open Issues: 0

v2.0.1 2026-10-02 19:29 UTC

This package is auto-updated.

Last update: 2026-10-02 19:30:12 UTC


README

Logo for Eloquent Salesforce Objects

Eloquent Salesforce Objects

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Buy Me A Coffee

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, and hasOne
  • 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-model scaffolds 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

Advanced

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.