Support the ongoing development of Laravel.io →
Database Eloquent

I know that I can use the below to eager load relationships, but how do I add "shortcuts" in the model - so that I do not have to keep digging to get the data. i.e. instead of writing (and digging down each time)

->with('location.company')

I would rather write

->with('location')->with('company')

(Example model that returns the data for location and null for company)

/**
 * Returns the location that the equipment belongs to.
 *
 * @var array
 */
public function location()
{
    return $this->belongsTo('App\Location');
}

/**
 * Returns the company that the equipment belongs to.
 *
 * @var array
 */
public function company()
{
    return $this->location->company();
}
Last updated 3 years ago.
0

You can't eager load the company without eager loading the location. Whatever you do there will be two queries to the database.
Inside the eloquent model (Illuminate/Database/Eloquent/Model.php) there is a $with array. You can override it. When it is override the specified relations will be always eager-loaded. Maybe this will help you.

0

Sign in to participate in this thread!

Eventy

Your banner here too?

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.