X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FModels%2FTechnique.php;h=0b25e47b19ded74f56c91a8c65a662c1021e2eae;hb=e4e7cbc7e4944b08d74f5752de337ba7700367f4;hp=1a54a0e1b29767f6f7ce29d1efc485ec1b17328d;hpb=7e8555cfc96dcd364ca4fe9895e51af1bb04b546;p=alttp.git diff --git a/app/Models/Technique.php b/app/Models/Technique.php index 1a54a0e..0b25e47 100644 --- a/app/Models/Technique.php +++ b/app/Models/Technique.php @@ -4,6 +4,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\App; class Technique extends Model { @@ -17,7 +18,36 @@ class Technique extends Model ->using(TechniqueChapter::class); } + public function relations() { + return $this + ->belongsToMany(Technique::class, 'technique_relations', 'from_id', 'to_id') + ->withPivot('type') + ->using(TechniqueRelation::class); + } + + public function translations() { + return $this->hasMany(TechniqueTranslation::class); + } + + public function getTranslatedProperty($prop, $lang = null) { + if (is_null($lang)) $lang = App::getLocale(); + foreach ($this->translations as $translation) { + if ($translation->locale == $lang) { + return $translation->{$prop}; + } + } + return $this->{$prop}; + } + protected $casts = [ 'index' => 'boolean', + 'requirements' => 'array', + 'rulesets' => 'array', + 'title_icons' => 'array', ]; + + protected $with = [ + 'translations', + ]; + }