Mercurial > packages > magicforger
view src/Generator/Model/stubs/model.stub @ 27:b17f81b804ff codex
Added support for routes
| author | Luka Sitas <sitas.luka.97@gmail.com> |
|---|---|
| date | Mon, 02 Jun 2025 21:51:09 -0400 |
| parents | 555bfaa500ac |
| children | f88d2d5dee30 |
line wrap: on
line source
<?php namespace {{ namespace }}; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class {{ class }} extends Model { //use HasFactory; use SoftDeletes; /** * The table associated with the model. * * @var string */ protected $table = '{{ tableName }}'; /** * The model's default values for attributes. * * @var array */ protected $attributes = [ # {{ atributeInsertPoint }} ]; protected $fillable = [ # {{ fillableInsertPoint }} ]; protected $default_relations = [ # {{ defaultRelationsInsertPoint }} ]; //MARK FOR MODEL public static function boot() : void { parent::boot(); self::creating(function ($item) { $item->created_by = \Auth::user()?->id ?? ''; $item->updated_by = \Auth::user()?->id ?? ''; }); self::saving(function ($item) { $item->updated_by = \Auth::user()?->id ?? ''; }); } //relations // BelongsTo # {{ belongs_to_relationships }} // HasMany # {{ has_many_relationships }} // HasManyThrough # {{ has_many_through_relationships }} /** * Load the default relations for the model. * * @return $this */ public function load_relations() { foreach($this->default_relations as $relation) { $this->load($relation); } return $this; } //MARK FOR MODEL protected static function load_auxilary_data() { $data = []; $instance = new static(); foreach($instance->default_relations as $relation) { $related_model = $instance->$relation()->getRelated(); $related_table = $related_model->getTable(); $data[$related_table] = $related_model->all()->pluck('name','id')->toArray(); } return $data; } //MARK FOR MODEL public static function load_index() { return static::load_auxilary_data(); } //MARK FOR MODEL public static function load_create() { return static::load_auxilary_data(); } //MARK FOR MODEL public static function load_edit() { return static::load_auxilary_data(); } /** * Retrieve a query builder instance with default relations loaded. * * @return \Illuminate\Database\Eloquent\Builder */ //MARK FOR MODEL public static function data_query() { $query = static::query(); $instance = new static(); foreach($instance->default_relations as $relation) { $query->with($relation); } return $query; } /** * Retrieve a query builder instance with default relations loaded. * * @return \Illuminate\Database\Eloquent\Builder */ public static function get_data() { return static::data_query()->get(); } }
