Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Eloquent Salesforce Objects Laravel Package

daikazu/eloquent-salesforce-objects

Laravel Eloquent-style models for Salesforce sObjects. Query and sync Salesforce data using familiar Eloquent patterns, with object mapping and relationships to work with Accounts, Contacts, and more from your Laravel app.

View on GitHub
Deep Wiki
Context7

Eloquent Salesforce Objects

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

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, 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, 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

Testing

composer test

Credits

License

MIT. See LICENSE.


Need help? Check the docs or open an issue.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle