Tag::setNameAttribute()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
1
<?php
2
3
namespace App;
4
5
use App\Libraries\Presenterable\Presenterable;
6
use App\Libraries\Presenterable\Presenters\TagPresenter;
7
use App\Traits\ActivateableTrait;
8
use Cviebrock\EloquentTaggable\Services\TagService;
9
use Keyhunter\Administrator\Repository;
10
use Keyhunter\Translatable\HasTranslations;
11
use Keyhunter\Translatable\Translatable;
12
13
class Tag extends Repository implements Translatable
14
{
15
    use HasTranslations, ActivateableTrait, Presenterable;
16
17
    /**
18
     * The table associated with the model.
19
     *
20
     * @var string
21
     */
22
    protected $table = 'taggable_tags';
23
24
    /**
25
     * @var TagPresenter
26
     */
27
    public $presenter = TagPresenter::class;
28
29
    /**
30
     * The primary key for the model.
31
     *
32
     * @var string
33
     */
34
    protected $primaryKey = 'id';
35
36
    /**
37
     * The attributes that are mass assignable.
38
     *
39
     * @var array
40
     */
41
    protected $fillable = [ 'category_id', 'normalized', 'active' ];
42
43
    /**
44
     * Set the name attribute on the model.
45
     *
46
     * @param string $value
47
     */
48
    public function setNameAttribute($value)
49
    {
50
        $value = trim($value);
51
        $this->attributes['name'] = $value;
52
        $this->attributes['normalized'] = app(TagService::class)->normalize($value);
53
    }
54
55
    /**
56
     * The attributes that are translatable.
57
     *
58
     * @var array
59
     */
60
    public $translatedAttributes = [ 'name', 'group' ];
61
62
    /**
63
     * @var \Illuminate\Database\Eloquent\Model TagTranslation
64
     */
65
    public $translationModel = TagTranslation::class;
66
67
    /**
68
     * Convert the model to its string representation.
69
     *
70
     * @return string
71
     */
72
    public function __toString()
73
    {
74
        return $this->getAttribute('name');
75
    }
76
77
    /**
78
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
79
     */
80
    public function category()
81
    {
82
        return $this->belongsTo(Category::class, 'category_id', 'id');
83
    }
84
85
    /**
86
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
87
     */
88
    public function subCategories()
89
    {
90
        return $this->hasMany(TaggableSubCategory::class, 'id', 'taggable_tag_id');
91
    }
92
}