34 lines
640 B
PHP
34 lines
640 B
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Category extends Model
|
|
{
|
|
protected $fillable = ['name', 'description', 'icon'];
|
|
|
|
protected $appends = ['icon_url'];
|
|
|
|
public function getIconUrlAttribute(): ?string
|
|
{
|
|
return $this->icon ? asset('storage/' . $this->icon) : null;
|
|
}
|
|
|
|
public function questions()
|
|
{
|
|
return $this->hasMany(Question::class);
|
|
}
|
|
|
|
public function subcategories()
|
|
{
|
|
return $this->hasMany(SubCategory::class);
|
|
}
|
|
|
|
public function media()
|
|
{
|
|
return $this->belongsToMany(Media::class, 'category_media');
|
|
}
|
|
}
|
|
|