mysql - Laravel Eloquent Relationship instead of Join on third table not related to parent -


i have orders table , order_items table related hasmany , belongsto respectively.

there products table related order_items hasmany , belongsto respectively.

what goal is, create orders object includes products without using join.

is possible, how relationships set make happen in eloquent?

ideally, have in with cannot figure out how make work.

order model:

class order extends eloquent {      public function orderitems()     {         return $this->hasmany('orderitem');     } } 

orderitem model:

class orderitem extends eloquent {      public function order()     {         return $this->belongsto('order');     }      public function products()     {         return $this->belongsto('product');     } } 

product model:

class product extends eloquent {      public function orderitems()     {         return $this->hasmany('orderitem');     } } 

query:

$order = order::with('user', 'orderitems', 'address')         ->where('orders.id', $id)         ->get()         ->toarray(); 

you're looking belongstomany relationship

class order extends eloquent {      public function items()     {         return $this->belongstomany('product','order_items','order_id','product_id'); //assuming 'order_items' table has order_id , product_id foreign keys     } } 

you can work pivot table (order_items table in case).


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -