Subversion-Projekte lars-tiefland.webanos.faltradxxs.de

Revision

Revision 2 | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

Revision 2 Revision 24
Zeile 4... Zeile 4...
4
 
4
 
5
    use Illuminate\Database\Eloquent\Factories\HasFactory;
5
    use Illuminate\Database\Eloquent\Factories\HasFactory;
6
    use Illuminate\Database\Eloquent\Model;
6
    use Illuminate\Database\Eloquent\Model;
7
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
7
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
-
 
8
    use Illuminate\Database\Eloquent\Relations\HasMany;
8
    use Illuminate\Database\Eloquent\Relations\HasMany;
9
    use Illuminate\Support\Facades\Cache;
9
    use Spatie\Sluggable\HasSlug;
10
    use Spatie\Sluggable\HasSlug;
Zeile 10... Zeile 11...
10
    use Spatie\Sluggable\SlugOptions;
11
    use Spatie\Sluggable\SlugOptions;
11
 
12
 
Zeile 21... Zeile 22...
21
            return SlugOptions::create()
22
            return SlugOptions::create()
22
                ->generateSlugsFrom( 'name' )
23
                ->generateSlugsFrom( 'name' )
23
                ->saveSlugsTo( 'slug' )
24
                ->saveSlugsTo( 'slug' )
24
                ->usingLanguage( 'de' )
25
                ->usingLanguage( 'de' )
25
                ->doNotGenerateSlugsOnUpdate()
26
                ->doNotGenerateSlugsOnUpdate()
-
 
27
                ->skipGenerateWhen( function ()
-
 
28
                {
26
                ->skipGenerateWhen( fn() => $this->directory_id < 0 );
29
                    return $this->directory_id < 0;
-
 
30
                } );
27
        }
31
        }
Zeile 28... Zeile 32...
28
 
32
 
29
        function medium(): HasMany
33
        function medium(): HasMany
30
        {
34
        {
31
            return $this->hasMany( ItemMedium::class )->orderBy( "rank" );
35
            return $this->hasMany( ItemMedium::class )->orderBy( "rank" );
Zeile 32... Zeile 36...
32
        }
36
        }
33
 
37
 
34
        public function price(): HasMany
38
        public function price(): HasMany
35
        {
39
        {
Zeile 36... Zeile 40...
36
            return $this->hasMany( Price::class )->orderBy( "preis_index" );
40
            return $this->hasMany( Price::class )->where("preis","!=",0)->orderBy( "preis_index" );
37
        }
41
        }
38
 
42
 
39
        public function manufacturer(): BelongsTo
43
        public function manufacturer(): BelongsTo
-
 
44
        {
-
 
45
            return $this->belongsTo( Manufacturer::class );
-
 
46
        }
-
 
47
 
-
 
48
        // On the Model class add the following method.
-
 
49
 
-
 
50
        public function resolveRouteBinding( $value, $field = null ): ?Model
-
 
51
        {
-
 
52
            $cacheName = "item_" . $value;
-
 
53
 
-
 
54
            if ( Cache::has( $cacheName ) )
-
 
55
            {
-
 
56
                return Cache::get( $cacheName );
-
 
57
            }
-
 
58
 
-
 
59
            $result = $this->with( 'price', 'medium.medium', 'manufacturer' )->where( 'slug', $value )->firstOrFail();
-
 
60
            Cache::put( $cacheName, $result, 86400 );
40
        {
61