Files
opensem/app/Models/Shop/Categorizable.php

44 lines
1.0 KiB
PHP

<?php
namespace App\Models\Shop;
use Illuminate\Database\Eloquent\Model;
class Categorizable extends Model
{
protected $table = 'categorizables';
public function categorizable()
{
return $this->morphTo();
}
public function category()
{
return $this->belongsTo(Category::class);
}
public function article()
{
return $this->belongsTo(Article::class, 'categorizable_id');
}
public function scopeByCategory($query, $category_id)
{
return $query->where($this->table . '.category_id', $category_id);
}
public function scopeByCategories($query, $categories_id)
{
return $query->whereIn($this->table . '.category_id', $categories_id);
}
public function scopeByCategoryParent($query, $category_id)
{
$category = Category::find($category_id);
return $query->whereHas('category', function ($query) use ($category) {
return $query->inRange($category->_lft, $category->_rgt);
});
}
}