D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
dentostock.com
/
Modules
/
Blog
/
app
/
Models
/
Filename :
BlogCategory.php
back
Copy
<?php namespace Modules\Blog\app\Models; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Support\Facades\App; class BlogCategory extends Model { use HasFactory; protected $fillable = [ 'name', 'created_at', 'updated_at', ]; public function blogs(): HasMany { return $this->hasMany(Blog::class, 'category_id', 'id'); } public function scopeActive($query) { return $query->where('status', 1); } public function translations(): MorphMany { return $this->morphMany('Modules\Blog\app\Models\BlogTranslation', 'translation'); } public function getNameAttribute($name): string|null { if (strpos(url()->current(), '/admin') || strpos(url()->current(), '/vendor') || strpos(url()->current(), '/seller')) { return $name; } $translation = $this->translations()->where(['key' => 'name']) ->when(strpos(url()->current(), '/api'), function ($query) { return $query->where('locale', App::getLocale()); }) ->when(!strpos(url()->current(), '/api'), function ($query) { return $query->where('locale', getDefaultLanguage()); }) ->first(); return $translation?->value ?? $name; } protected static function boot(): void { parent::boot(); static::addGlobalScope('translate', function (Builder $builder) { $builder->with(['translations' => function ($query) { if (strpos(url()->current(), '/api')) { return $query->where('locale', App::getLocale()); } else { return $query->where('locale', getDefaultLanguage()); } }]); }); } }