@@ -17,28 +17,38 @@ composer require calebporzio/parental
17
17
## Simple Usage
18
18
19
19
``` php
20
+ namespace App\Models;
21
+
22
+ use Illuminate\Database\Eloquent\Model;
23
+ use Parental\HasChildren;
24
+
20
25
// The "parent"
21
26
class User extends Model
22
27
{
23
- use \Parental\HasChildren;
24
-
28
+ use HasChildren;
25
29
//
26
30
}
27
31
```
28
32
29
33
``` php
34
+ namespace App\Models;
35
+
36
+ use Parental\HasParent;
37
+
30
38
// The "child"
31
39
class Admin extends User
32
40
{
33
- use \Parental\ HasParent;
41
+ use HasParent;
34
42
35
43
public function impersonate($user) {
36
- ...
44
+ // ...
37
45
}
38
46
}
39
47
```
40
48
41
49
``` php
50
+ use App\Models\Admin;
51
+
42
52
// Returns "Admin" model, but reference "users" table:
43
53
$admin = Admin::first();
44
54
@@ -59,33 +69,50 @@ Schema::table('users', function ($table) {
59
69
```
60
70
61
71
``` php
72
+ namespace App\Models;
73
+
74
+ use Illuminate\Database\Eloquent\Model;
75
+ use Parental\HasChildren;
76
+
62
77
// The "parent"
63
78
class User extends Model
64
79
{
65
- use \Parental\ HasChildren;
80
+ use HasChildren;
66
81
67
82
protected $fillable = ['type'];
68
83
}
69
84
```
70
85
71
86
``` php
87
+ namespace App\Models;
88
+
89
+ use Parental\HasParent;
90
+
72
91
// A "child"
73
92
class Admin extends User
74
93
{
75
- use \Parental\ HasParent;
94
+ use HasParent;
76
95
}
77
96
```
78
97
79
98
``` php
99
+ namespace App\Models;
100
+
101
+ use Parental\HasParent;
102
+
80
103
// Another "child"
81
104
class Guest extends User
82
105
{
83
- use \Parental\ HasParent;
106
+ use HasParent;
84
107
}
85
108
```
86
109
87
110
88
111
``` php
112
+ use App\Models\Admin;
113
+ use App\Models\Guest;
114
+ use App\Models\User;
115
+
89
116
// Adds row to "users" table with "type" column set to: "App/Admin"
90
117
Admin::create(...);
91
118
@@ -103,15 +130,20 @@ Before, if we ran: `User::first()` we would only get back `User` models. By addi
103
130
If you don't want to store raw class names in the type column, you can override them using the ` $childTypes ` property.
104
131
105
132
``` php
133
+ namespace App\Models;
134
+
135
+ use Illuminate\Database\Eloquent\Model;
136
+ use Parental\HasChildren;
137
+
106
138
class User extends Model
107
139
{
108
- use \Parental\ HasChildren;
140
+ use HasChildren;
109
141
110
142
protected $fillable = ['type'];
111
143
112
144
protected $childTypes = [
113
- 'admin' => App\ Admin::class,
114
- 'guest' => App\ Guest::class,
145
+ 'admin' => Admin::class,
146
+ 'guest' => Guest::class,
115
147
];
116
148
}
117
149
```
@@ -124,9 +156,14 @@ This feature is useful if you are working with an existing type column, or if yo
124
156
You can override the default type column by setting the ` $childColumn ` property on the parent model.
125
157
126
158
``` php
159
+ namespace App\Models;
160
+
161
+ use Illuminate\Database\Eloquent\Model;
162
+ use Parental\HasChildren;
163
+
127
164
class User extends Model
128
165
{
129
- use \Parental\ HasChildren;
166
+ use HasChildren;
130
167
131
168
protected $fillable = ['parental_type'];
132
169
0 commit comments