Getting Values from Nested Relationships in Laravel

Last Updated at : May 4, 2018 By - Usama Muneer | 2393

    Maintaining Database Relationships in Laravel is quite a task but when it comes to nested relationships, things get a bit tangled up to handle.

    In the below example, we’ll look on how to handle nested relationships situation in Laravel.

    Please note, this example will not include any steps for creating database migrations and seeders.

    Scenario

    Let’s take an example for customers & products and their corresponding types. The Relation between Customer and Product & between Product and Type is hasMany respectively. We’ll go through these below.

    Customer Model

    public function product() {
       //foreign_key, local_key
       return $this->hasMany( 'App\Product', 'customer_id', 'id' );
    }

    Product Model

    public function type() {
       return $this->hasMany( 'App\Type' );
    }

    Now with the simple setup for our relationship we’re ready to get data from our DB.

    Getting data from nested relationship

    Consider that we’ll be needing to fetch customer’s selected type name for some product.

    $customer = Customer::with('product.type')->findOrFail($customer_id);
    $items = collect();
    $m->product->each(function($q) use(&$items) {
     $items = $items->concat($q->type);
    });
    $name = $items->pluck('name');
    dd($name);

    Conclusion

    If you’ve any questions or feedback regarding this code. Please leave us a comment below or you can also follow us on Twitter.

    blog user
    Usama Muneer

    A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.

    Related Posts

    Imagine you have a scenario where you need to add multiple actions to your Laravel Notification where you can add as many as button components with different URLs.

    Importing Excel files come handy when you’re building some large scale inventory kind of an application where you need to import set of data from CSV or excel files. In this short tutorial, we’ll go through on importing excel files with Laravel & look on for some crazy hacks and tricks in between.

    Gear up fellow developers, another Laravel Meetup is coming back to Lahore & it will be a great milestone while helping our fellow web developers across the city to become motivated and will help them grow as Laravel developers.

    Getting an app developed is not the only thing that one needs to ensure in terms of digital visibility and e-commerce. Yes, having an app is important but to stay updated and to be abreast with the competition Optimization of performance is necessary.