From 4ab6e5d96bc747ba3fca0f32f3ebcd362fce0e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihan=20=C5=9Eent=C3=BCrk?= <53110792+CihanSenturk@users.noreply.github.com> Date: Fri, 10 Jun 2022 15:15:00 +0300 Subject: [PATCH] widget model alias scope added --- app/Models/Common/Widget.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/Models/Common/Widget.php b/app/Models/Common/Widget.php index 71652501c..481ac63bf 100644 --- a/app/Models/Common/Widget.php +++ b/app/Models/Common/Widget.php @@ -5,6 +5,7 @@ namespace App\Models\Common; use App\Abstracts\Model; use Bkwld\Cloner\Cloneable; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Support\Str; class Widget extends Model { @@ -28,6 +29,20 @@ class Widget extends Model 'settings' => 'object', ]; + /** + * Scope to only include widgets of a given alias. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param string $alias + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeAlias($query, $alias) + { + $class = ($alias == 'core') ? 'App\\\\' : 'Modules\\\\' . Str::studly($alias) . '\\\\'; + + return $query->where('class', 'like', $class . '%'); + } + public function dashboard() { return $this->belongsTo('App\Models\Common\Dashboard');