Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 386 | Revision 645 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2 lars 1
<?php
2
 
306 lars 3
    namespace App\Models;
2 lars 4
 
306 lars 5
    use Illuminate\Database\Eloquent\Factories\HasFactory;
6
    use Illuminate\Database\Eloquent\Model;
308 lars 7
    use Illuminate\Database\Eloquent\Relations\HasMany;
644 lars 8
    use Illuminate\Database\Eloquent\Relations\HasOne;
306 lars 9
    use Spatie\Sluggable\HasSlug;
10
    use Spatie\Sluggable\SlugOptions;
2 lars 11
 
306 lars 12
    class Item extends Model
13
    {
14
        use HasFactory, HasSlug;
169 lars 15
 
306 lars 16
        /**
17
         * Get the options for generating the slug.
18
         */
19
        public function getSlugOptions(): SlugOptions
20
        {
21
            return SlugOptions::create()
22
                ->generateSlugsFrom( 'name' )
23
                ->saveSlugsTo( 'slug' )
24
                ->usingLanguage( 'de' )
25
                ->doNotGenerateSlugsOnUpdate()
26
                ->skipGenerateWhen( fn() => $this->directory_id < 0 );
27
        }
28
 
308 lars 29
        function medium(): HasMany
30
        {
644 lars 31
            return $this->hasMany( ItemMedium::class )->orderBy( "rank" );
308 lars 32
        }
33
 
644 lars 34
        public function price(): HasMany
306 lars 35
        {
644 lars 36
            return $this->hasMany( Price::class )->orderBy( "preis_index" );
306 lars 37
        }
644 lars 38
 
39
        public function manufacturer(): HasOne
40
        {
41
            return $this->hasOne( Manufacturer::class );
42
        }
169 lars 43
    }