Mercurial > packages > framework
annotate src/Models/BaseModel.php @ 1:56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
| author | luka |
|---|---|
| date | Mon, 09 Jun 2025 23:07:17 -0400 |
| parents | |
| children | b44434aaa767 |
| rev | line source |
|---|---|
|
1
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
1 <?php |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
2 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
3 namespace Wizard\Framework\Models; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
4 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
5 use Wizard\Framework\Traits\Filterable; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
6 use Illuminate\Database\Eloquent\Model; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
7 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
8 class BaseModel extends Model |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
9 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
10 use Filterable; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
11 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
12 protected $default_relations = []; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
13 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
14 public static function boot(): void |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
15 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
16 parent::boot(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
17 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
18 self::creating(function ($item) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
19 $item->created_by = \Auth::user()?->id ?? ''; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
20 $item->updated_by = \Auth::user()?->id ?? ''; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
21 }); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
22 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
23 self::saving(function ($item) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
24 $item->updated_by = \Auth::user()?->id ?? ''; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
25 }); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
26 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
27 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
28 protected static function load_auxilary_data() |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
29 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
30 $data = []; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
31 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
32 $instance = new static; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
33 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
34 foreach ($instance->default_relations as $relation) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
35 $related_model = $instance->$relation()->getRelated(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
36 $related_table = $related_model->getTable(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
37 $data[$related_table] = $related_model->all()->pluck('name', 'id')->toArray(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
38 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
39 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
40 return $data; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
41 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
42 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
43 public static function load_index() |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
44 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
45 return static::load_auxilary_data(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
46 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
47 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
48 public static function load_create() |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
49 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
50 return static::load_auxilary_data(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
51 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
52 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
53 public static function load_edit() |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
54 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
55 return static::load_auxilary_data(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
56 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
57 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
58 /** |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
59 * Retrieve a query builder instance with default relations loaded. |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
60 * |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
61 * @return \Illuminate\Database\Eloquent\Builder |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
62 */ |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
63 public static function data_query() |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
64 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
65 $query = static::query(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
66 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
67 $instance = new static; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
68 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
69 foreach ($instance->default_relations as $relation) { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
70 $query->with($relation); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
71 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
72 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
73 return $query; |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
74 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
75 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
76 /** |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
77 * Retrieve a query builder instance with default relations loaded. |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
78 * |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
79 * @return \Illuminate\Database\Eloquent\Builder |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
80 */ |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
81 public static function get_data(array $validated = []) |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
82 { |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
83 $query = static::data_query(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
84 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
85 $query->filter($validated); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
86 |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
87 return $query->get(); |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
88 } |
|
56d9c64d64aa
Setting up the base, still have plenty of work to be done here.
luka
parents:
diff
changeset
|
89 } |
