Getting Values from Nested Relationships in Laravel

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

    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

    Previously Localization in Laravel was done by creating separate directories for each locales and place in under resources/lang/ and add key value pairs to every single keyword in a number of files as per their modules.

    Another #LaraconUS in the books & It was the 6th instalment of #LaraconUS happened at Chicago with full swing & we got a lot to learn this time with exceptional line of speakers and never-ending community support by fellow Artisans

    Laravel is one of a famous and widely used PHP framework which is growing with immense pace since its version 4.2. Learning Laravel & Setting up your application locally is not much of a difficult task but when it comes to deployment, developers often find it a bit tricky to handle.

    There are several PHP frameworks for a web development project. Among them Laravel is regarded as the best open-source PHP web framework.