HEX
Server: nginx/1.18.0
System: Linux srv01 5.15.0-171-generic #181-Ubuntu SMP Fri Feb 6 22:44:50 UTC 2026 x86_64
User: RaviMohan (1026)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/GemsPile/simkkr.gemspile.com/web/app/Models/Field.php
<?php

namespace App\Models;

use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Field extends Model
{
    use HasFactory;
    use HasSlug;

    public $casts = ['models' => 'array'];

    public $fillable = [
        'name', 'type', 'models', 'slug', 'order', 'options', 'required', 'show', 'description',
    ];

    public function getSlugOptions(): SlugOptions
    {
        return SlugOptions::create()->generateSlugsFrom('name')->saveSlugsTo('slug');
    }

    public function scopeFilter($query, array $filters)
    {
        $query->when($filters['trashed'] ?? null, fn ($q, $t) => $q->{$t . 'Trashed'}())
            ->when($filters['search'] ?? null, fn ($query, $search) => $query->search($search));
    }

    public function scopeOfModel($query, $model)
    {
        $query->where('models', 'like', "%{$model}%")->orderBy('order', 'asc');
    }

    public function scopeOfModels($query, $models)
    {
        if (! empty($models)) {
            $r = 0;
            foreach ($models as $model) {
                $query->{$r ? 'orWhere' : 'where'}('models', 'like', "%{$model}%")->orderBy('order', 'asc');
            }
            $query->orderBy('order', 'asc');
        }
    }

    public function scopeSearch($query, $s)
    {
        $query->where(
            fn ($q) => $q->where('name', 'like', "%{$s}%")->orWhere('type', 'like', "%{$s}%")
                ->orWhere('models', 'like', "%{$s}%")->orWhere('description', 'like', "%{$s}%")
        );
    }
}