/home/techb158/immovalet.com/platform/plugins/blog/src/Models
Edit: /home/techb158/immovalet.com/platform/plugins/blog/src/Models/Category.php (2625B)
BaseStatusEnum::class,
];
/**
* @return BelongsToMany
*/
public function posts(): BelongsToMany
{
return $this->belongsToMany(Post::class, 'post_categories')->with('slugable');
}
/**
* @return BelongsTo
*/
public function parent(): BelongsTo
{
return $this->belongsTo(Category::class, 'parent_id')->withDefault();
}
/**
* @return HasMany
*/
public function children(): HasMany
{
return $this->hasMany(Category::class, 'parent_id');
}
/**
* @return string
*/
public function getBadgeWithCountAttribute()
{
switch ($this->status->getValue()) {
case BaseStatusEnum::DRAFT:
$badge = 'bg-secondary';
break;
case BaseStatusEnum::PENDING:
$badge = 'bg-warning';
break;
default:
$badge = 'bg-success';
break;
}
return Html::tag('span', (string)$this->posts_count, [
'class' => 'badge font-weight-bold ' . $badge,
'data-toggle' => 'tooltip',
'data-original-title' => trans('plugins/blog::categories.total_posts', ['total' => $this->posts_count])
]);
}
protected static function boot()
{
parent::boot();
self::deleting(function (Category $category) {
Category::where('parent_id', $category->id)->delete();
$category->posts()->detach();
});
}
}