Eager loading dynamically in laravel

Sometimes you have to take data from relationship table on a specific condition. In that case, you can use load() method to take data from relationship table using eager loading dynamically in laravel

Answers 1
  • Add relationship table data to collection with condition in Laravel

    $users = User::all();
    $isLoad = true;
    if($isLoad) {
        $users->load('posts');    
    }
    dd($users);
    
    //Import user model after the namespace to use above code snippet
    use App\Models\User;
    
    //hasMany relation in user model with method posts to get relationship table data
    // app\Models\User.php
    class User extends Authenticatable
    {
        
        public function posts()
        {
            return $this->hasMany('App\Models\Post');
        }
    }
    
    0

    It will add data from posts table to user collection dynamically with a specific condition. It will add data if $isLoad variable is true and if the $isLoad variable is not true then it will not add data to user collection in laravel.

    You have to make tables, users with id colum (primary key) and posts with user_id (foreign key related to users table primary key) to create a relationship between these two tables. 

  • Back to code snippet queries related laravel