Laravel parent/child relationship
Create a parent/child relationship within a model, based on a parent_id in the databast table
id name parent_id
1 Group 1 NULL
2 Group 2 1
<?php // model
class Group extends Eloquent {
public function parent()
{
return $this->belongsTo('group', 'parent_id');
}
public function children()
{
return $this->hasMany('group', 'parent_id');
}
}
// Controller
$group = $this->group->with('children', 'parent')->find(1);
// Outputs:
/*
array (size=8)
'id' => int 1
'name' => string 'Group 1' (length=7)
'parent_id' => null
'children' =>
array (size=1)
0 =>
array (size=5)
'id' => int 2
'name' => string 'Group 2' (length=7)
'parent_id' => int 1
'parent' => null
*/
Written by Dave Townsend
Related protips
2 Responses
Hello!
I have a similar code with parent and children elements.
But I dont know to make to save a parent when save a group.
Can you help me?
over 1 year ago
·
What about Nested Set Model?
over 1 year ago
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Laravel
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#