Tag::posts()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace App\Models;
4
5
use App\Traits\Sluggable;
6
use Illuminate\Database\Eloquent\Model;
7
8
class Tag extends Model
9
{
10
    use Sluggable;
11
12
    public function posts()
13
    {
14
        return $this->belongsToMany(Post::class, 'posts_tags');
15
    }
16
17
    public function getUrlAttribute()
18
    {
19
        return route('tags.show', $this->slug);
20
    }
21
22
    public static function findOrCreateByName($name)
23
    {
24
        $tag = self::where('name', $name)->first();
25
        if ($tag !== null) {
26
            return $tag;
27
        }
28
29
        $tag = new self();
30
31
        $tag->name = $name;
32
        $tag->slug = str_slug($name);
33
34
        $tag->save();
35
36
        return $tag;
37
    }
38
}
39