45 lines
1.0 KiB
PHP
45 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);
|
|
});
|
|
}
|
|
}
|