Support the ongoing development of Laravel.io →
posted 10 years ago
Eloquent

I have the following tables

products variants attributes options option_variant

Look at this sqlfiddle for details http://sqlfiddle.com/#!2/eb1c73/24/0

Can I have something like this on my Product model to get all the attributes like I'm doing on the sqlfiddle query?

function attributes(){

return $this->hasManyThrough('Attributes','Variant');

}

THANKS!!

My Models:

<?php class Product extends \Eloquent { protected $table = 'products'; public function user() { return $this->belongsTo('User'); } public function variants() { return $this->hasMany('Variant'); } public function attributes(){ return $this->hasManyThrough('Attribute','OptionVariant'); } } <?php class Variant extends \Eloquent { protected $table = 'variants'; public function product() { return $this->belongsTo('Product'); } public function options() { return $this->belongsToMany('Option'); } } <?php class Attribute extends \Eloquent { protected $table = 'attributes'; public function options() { return $this->hasMany('Option'); } } <?php class Option extends \Eloquent { protected $table = 'options'; public function attribute() { return $this->belongsTo('Attribute'); } public function variants() { return $this->belongsToMany('Variant'); } } <?php class OptionVariant extends \Eloquent { protected $table = 'option_variant'; }
Last updated 2 years ago.
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.