File tree Expand file tree Collapse file tree 18 files changed +104
-126
lines changed Expand file tree Collapse file tree 18 files changed +104
-126
lines changed Original file line number Diff line number Diff line change 33
33
34
34
abstract class Schema extends BaseSchema implements CountableSchema
35
35
{
36
-
37
36
/**
38
37
* The relationships that should always be eager loaded.
39
38
*
@@ -86,6 +85,14 @@ public function repository(): Repository
86
85
);
87
86
}
88
87
88
+ /**
89
+ * @return class-string<Model>
90
+ */
91
+ public function model (): string
92
+ {
93
+ return $ this ->static ->getModel ();
94
+ }
95
+
89
96
/**
90
97
* @return Model
91
98
*/
@@ -354,5 +361,4 @@ protected function driver(): Driver
354
361
{
355
362
return new StandardDriver ($ this ->newInstance ());
356
363
}
357
-
358
364
}
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \CarOwner ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
21
22
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
22
23
use LaravelJsonApi \Eloquent \Schema ;
23
24
25
+ #[Model(CarOwner::class)]
24
26
class CarOwnerSchema extends Schema
25
27
{
26
-
27
- /**
28
- * The model the schema corresponds to.
29
- *
30
- * @var string
31
- */
32
- public static string $ model = CarOwner::class;
33
-
34
28
/**
35
29
* @inheritDoc
36
30
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \Car ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
20
21
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
21
22
use LaravelJsonApi \Eloquent \Schema ;
22
23
24
+ #[Model(Car::class)]
23
25
class CarSchema extends Schema
24
26
{
25
-
26
- /**
27
- * The model the schema corresponds to.
28
- *
29
- * @var string
30
- */
31
- public static string $ model = Car::class;
32
-
33
27
/**
34
28
* @inheritDoc
35
29
*/
Original file line number Diff line number Diff line change 13
13
14
14
use App \Models \Comment ;
15
15
use LaravelJsonApi \Contracts \Pagination \Paginator ;
16
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
18
19
use LaravelJsonApi \Eloquent \Fields \Relations \BelongsTo ;
22
23
use LaravelJsonApi \Eloquent \Pagination \PagePagination ;
23
24
use LaravelJsonApi \Eloquent \Schema ;
24
25
26
+ #[Model(Comment::class)]
25
27
class CommentSchema extends Schema
26
28
{
27
-
28
- /**
29
- * The model the schema corresponds to.
30
- *
31
- * @var string
32
- */
33
- public static string $ model = Comment::class;
34
-
35
29
/**
36
30
* @inheritDoc
37
31
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \Country ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
20
21
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
21
22
use LaravelJsonApi \Eloquent \Schema ;
22
23
24
+ #[Model(Country::class)]
23
25
class CountrySchema extends Schema
24
26
{
25
-
26
- /**
27
- * The model the schema corresponds to.
28
- *
29
- * @var string
30
- */
31
- public static string $ model = Country::class;
32
-
33
27
/**
34
28
* @inheritDoc
35
29
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \Image ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
20
21
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
21
22
use LaravelJsonApi \Eloquent \Schema ;
22
23
24
+ #[Model(Image::class)]
23
25
class ImageSchema extends Schema
24
26
{
25
-
26
- /**
27
- * The model the schema corresponds to.
28
- *
29
- * @var string
30
- */
31
- public static string $ model = Image::class;
32
-
33
27
/**
34
28
* @inheritDoc
35
29
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \Mechanic ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
20
21
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
21
22
use LaravelJsonApi \Eloquent \Schema ;
22
23
24
+ #[Model(Mechanic::class)]
23
25
class MechanicSchema extends Schema
24
26
{
25
-
26
- /**
27
- * The model the schema corresponds to.
28
- *
29
- * @var string
30
- */
31
- public static string $ model = Mechanic::class;
32
-
33
27
/**
34
28
* @inheritDoc
35
29
*/
Original file line number Diff line number Diff line change 13
13
14
14
use App \Models \Phone ;
15
15
use LaravelJsonApi \Contracts \Pagination \Paginator ;
16
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
18
19
use LaravelJsonApi \Eloquent \Fields \Relations \BelongsTo ;
21
22
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
22
23
use LaravelJsonApi \Eloquent \Schema ;
23
24
25
+ #[Model(Phone::class)]
24
26
class PhoneSchema extends Schema
25
27
{
26
-
27
- /**
28
- * The model the schema corresponds to.
29
- *
30
- * @var string
31
- */
32
- public static string $ model = Phone::class;
33
-
34
28
/**
35
29
* @inheritDoc
36
30
*/
Original file line number Diff line number Diff line change 13
13
14
14
use App \Models \Post ;
15
15
use LaravelJsonApi \Contracts \Pagination \Paginator ;
16
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
18
19
use LaravelJsonApi \Eloquent \Fields \Relations \BelongsTo ;
36
37
use LaravelJsonApi \Eloquent \SoftDeletes ;
37
38
use LaravelJsonApi \Eloquent \Sorting \SortCountable ;
38
39
40
+ #[Model(Post::class)]
39
41
class PostSchema extends Schema
40
42
{
41
43
use SoftDeletes;
42
44
43
- /**
44
- * The model the schema corresponds to.
45
- *
46
- * @var string
47
- */
48
- public static string $ model = Post::class;
49
-
50
45
/**
51
46
* @var array|null
52
47
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \Role ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
20
21
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
21
22
use LaravelJsonApi \Eloquent \Schema ;
22
23
24
+ #[Model(Role::class)]
23
25
class RoleSchema extends Schema
24
26
{
25
-
26
- /**
27
- * The model the schema corresponds to.
28
- *
29
- * @var string
30
- */
31
- public static string $ model = Role::class;
32
-
33
27
/**
34
28
* @inheritDoc
35
29
*/
Original file line number Diff line number Diff line change 13
13
14
14
use App \Models \Tag ;
15
15
use LaravelJsonApi \Contracts \Pagination \Paginator ;
16
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
18
19
use LaravelJsonApi \Eloquent \Fields \Relations \BelongsToMany ;
21
22
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
22
23
use LaravelJsonApi \Eloquent \Schema ;
23
24
25
+ #[Model(Tag::class)]
24
26
class TagSchema extends Schema
25
27
{
26
-
27
- /**
28
- * The model the schema corresponds to.
29
- *
30
- * @var string
31
- */
32
- public static string $ model = Tag::class;
33
-
34
28
/**
35
29
* @inheritDoc
36
30
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \UserAccount ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
23
24
use LaravelJsonApi \Eloquent \Pagination \PagePagination ;
24
25
use LaravelJsonApi \Eloquent \ProxySchema ;
25
26
27
+ #[Model(UserAccount::class)]
26
28
class UserAccountSchema extends ProxySchema
27
29
{
28
-
29
- /**
30
- * The model the schema corresponds to.
31
- *
32
- * @var string
33
- */
34
- public static string $ model = UserAccount::class;
35
-
36
30
/**
37
31
* @inheritDoc
38
32
*/
Original file line number Diff line number Diff line change 12
12
namespace App \Schemas ;
13
13
14
14
use App \Models \User ;
15
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
15
16
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
25
26
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
26
27
use LaravelJsonApi \Eloquent \Schema ;
27
28
29
+ #[Model(User::class)]
28
30
class UserSchema extends Schema
29
31
{
30
-
31
- /**
32
- * The model the schema corresponds to.
33
- *
34
- * @var string
35
- */
36
- public static string $ model = User::class;
37
-
38
32
/**
39
33
* @inheritDoc
40
34
*/
Original file line number Diff line number Diff line change 13
13
14
14
use App \Models \Video ;
15
15
use LaravelJsonApi \Contracts \Pagination \Paginator ;
16
+ use LaravelJsonApi \Core \Schema \Attributes \Model ;
16
17
use LaravelJsonApi \Eloquent \Fields \DateTime ;
17
18
use LaravelJsonApi \Eloquent \Fields \ID ;
18
19
use LaravelJsonApi \Eloquent \Fields \Relations \BelongsToMany ;
22
23
use LaravelJsonApi \Eloquent \Filters \WhereIdIn ;
23
24
use LaravelJsonApi \Eloquent \Schema ;
24
25
26
+ #[Model(Video::class)]
25
27
class VideoSchema extends Schema
26
28
{
27
-
28
- /**
29
- * The model the schema corresponds to.
30
- *
31
- * @var string
32
- */
33
- public static string $ model = Video::class;
34
-
35
29
/**
36
30
* @inheritDoc
37
31
*/
@@ -69,5 +63,4 @@ public function pagination(): ?Paginator
69
63
{
70
64
return null ;
71
65
}
72
-
73
66
}
Original file line number Diff line number Diff line change @@ -33,10 +33,12 @@ protected function setUp(): void
33
33
{
34
34
parent ::setUp ();
35
35
36
+ $ static = self ::$ staticSchemas ->schemaFor (PostSchema::class);
37
+
36
38
$ this ->posts = $ this
37
39
->getMockBuilder (PostSchema::class)
38
40
->onlyMethods (['isSingular ' ])
39
- ->setConstructorArgs (['server ' => $ this ->server ()])
41
+ ->setConstructorArgs (['server ' => $ this ->server (), ' static ' => $ static ])
40
42
->getMock ();
41
43
}
42
44
You can’t perform that action at this time.
0 commit comments