Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1659 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2 lars 1
<?php
2
 
411 lars 3
    namespace App\Models;
2 lars 4
 
411 lars 5
    use Illuminate\Database\Eloquent\Factories\HasFactory;
6
    use Illuminate\Database\Eloquent\Model;
7
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
8
    use Illuminate\Database\Eloquent\Relations\HasMany;
1590 lars 9
    use Illuminate\Support\Collection;
411 lars 10
    use Spatie\Sluggable\HasSlug;
11
    use Spatie\Sluggable\SlugOptions;
181 lars 12
 
411 lars 13
    class Directory extends Model
169 lars 14
    {
411 lars 15
        use HasFactory, HasSlug;
181 lars 16
 
411 lars 17
        /**
18
         * Get the options for generating the slug.
19
         */
20
        public function getSlugOptions(): SlugOptions
21
        {
22
            return SlugOptions::create()
23
                ->generateSlugsFrom( 'name' )
24
                ->saveSlugsTo( 'slug' )
25
                ->usingLanguage( 'de' )
26
                ->doNotGenerateSlugsOnUpdate()
27
                ->skipGenerateWhen( fn() => $this->id < 0 );
176 lars 28
        }
29
 
411 lars 30
        public function directory(): BelongsTo
31
        {
32
            return $this->belongsTo( Directory::class );
176 lars 33
        }
34
 
411 lars 35
        function medium(): HasMany
36
        {
37
            return $this->hasMany( DirectoryMedium::class )->orderBy( "rank" );
181 lars 38
        }
1582 lars 39
 
622 lars 40
        function template(): HasMany
41
        {
626 lars 42
            return $this->hasMany( DirectoryTemplate::class );
622 lars 43
        }
1582 lars 44
 
1581 lars 45
        public function manufacturer(): BelongsTo
46
        {
47
            return $this->belongsTo( Manufacturer::class );
48
        }
176 lars 49
    }