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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
1 <?php
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
2
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
3 namespace {{ namespace }};
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
4
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
5 use Illuminate\Database\Eloquent\Relations\Pivot;
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
6
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
7 class {{ class }} extends Pivot
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
8 {
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
9 //
5
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
10
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
11 /**
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
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
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
14 *
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
15 * @var bool
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
16 */
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
17 public $timestamps = false;
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
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
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
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
b0b2e79ad8e6 Not exatly sure what was changed but commiting to it :)
luka
parents: 4
diff changeset
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
a20439b1c9d3 Added Model generator and other updates.
luka
parents:
diff changeset
105 }