Mercurial > packages > magicforger
annotate src/Generator/Model/stubs/model.pivot.stub @ 40:2cf26b593f4a ls_dev_2025_09 tip
better support for different column types
| author | Luka Sitas <sitas.luka.97@gmail.com> |
|---|---|
| date | Thu, 16 Oct 2025 10:54:04 -0400 |
| parents | b17f81b804ff |
| children |
| rev | line source |
|---|---|
| 4 | 1 <?php |
| 2 | |
| 3 namespace {{ namespace }}; | |
| 4 | |
| 5 use Illuminate\Database\Eloquent\Relations\Pivot; | |
| 6 | |
| 7 class {{ class }} extends Pivot | |
| 8 { | |
| 9 // | |
| 5 | 10 |
| 11 /** | |
| 12 * Indicates if the model should be timestamped. | |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
13 * By default our pivots will not use timestamps |
| 5 | 14 * |
| 15 * @var bool | |
| 16 */ | |
| 17 public $timestamps = false; | |
| 18 | |
|
27
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
19 protected $default_relations = [ |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
20 # {{ defaultRelationsInsertPoint }} |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
21 ]; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
22 |
| 5 | 23 |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
24 //relations |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
25 |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
26 // BelongsTo |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
27 # {{ belongs_to_relationships }} |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
28 |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
29 // HasMany |
|
24
31109c61ce02
Refactor RelationshipNavigator formatting and implement belongsTo, hasMany, belongsToMany injection in ModelGenerator
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
30 # {{ has_many_relationships }} |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
31 |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
32 // HasManyThrough |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
5
diff
changeset
|
33 # {{ has_many_through_relationships }} |
| 5 | 34 |
|
27
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
35 /** |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
36 * Load the default relations for the model. |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
37 * |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
38 * @return $this |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
39 */ |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
40 public function load_relations() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
41 foreach($this->default_relations as $relation) { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
42 $this->load($relation); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
43 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
44 return $this; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
45 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
46 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
47 //MARK FOR MODEL |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
48 protected static function load_auxilary_data() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
49 $data = []; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
50 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
51 $instance = new static(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
52 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
53 foreach($instance->default_relations as $relation) { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
54 $related_model = $instance->$relation()->getRelated(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
55 $related_table = $related_model->getTable(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
56 $data[$related_table] = $related_model->all()->pluck('name','id')->toArray(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
57 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
58 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
59 return $data; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
60 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
61 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
62 //MARK FOR MODEL |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
63 public static function load_index() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
64 return static::load_auxilary_data(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
65 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
66 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
67 //MARK FOR MODEL |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
68 public static function load_create() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
69 return static::load_auxilary_data(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
70 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
71 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
72 //MARK FOR MODEL |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
73 public static function load_edit() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
74 return static::load_auxilary_data(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
75 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
76 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
77 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
78 /** |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
79 * Retrieve a query builder instance with default relations loaded. |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
80 * |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
81 * @return \Illuminate\Database\Eloquent\Builder |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
82 */ |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
83 //MARK FOR MODEL |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
84 public static function data_query() { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
85 $query = static::query(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
86 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
87 $instance = new static(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
88 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
89 foreach($instance->default_relations as $relation) { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
90 $query->with($relation); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
91 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
92 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
93 return $query; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
94 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
95 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
96 /** |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
97 * Retrieve a query builder instance with default relations loaded. |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
98 * |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
99 * @return \Illuminate\Database\Eloquent\Builder |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
100 */ |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
101 public static function get_data() |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
102 { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
103 return static::data_query()->get(); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
24
diff
changeset
|
104 } |
| 4 | 105 } |
