Edit File: Intro.php
<?php namespace App\Models; use App\Traits\Uploadable; use Illuminate\Database\Eloquent\Model; use Spatie\Translatable\HasTranslations; use Illuminate\Database\Eloquent\Factories\HasFactory; class Intro extends BaseModel { use HasFactory,Uploadable , HasTranslations,Uploadable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['title','desc' ,'image']; public $translatable = ['title','desc']; public function getImagePathAttribute() { return asset('assets/uploads/intros/' . $this->image); } protected function asJson($value) { return json_encode($value, JSON_UNESCAPED_UNICODE); } public function setImageAttribute($value) { $this->attributes['image'] = $this->uploadOne($value, 'intros'); } public function scopeSearch( $query, $searchArray = [] ) { $query->where( function ( $query ) use ( $searchArray ) { if ( $searchArray ) { foreach ( $searchArray as $key => $value ) { if ( str_contains( $key, '_id' ) ) { if ( null != $value ) { $query->Where( $key, $value ); } } elseif ( 'order' == $key ) { } elseif ( 'created_at_min' == $key ) { if ( null != $value ) { $query->WhereDate( 'created_at', '>=', $value ); } } elseif ( 'created_at_max' == $key ) { if ( null != $value ) { $query->WhereDate( 'created_at', '<=', $value ); } } else { if ( null != $value ) { $query->Where( $key, 'like', '%' . $value . '%' ); } } } } } ); return $query->orderBy( 'created_at', request()->searchArray && request()->searchArray[ 'order' ] ? request()->searchArray[ 'order' ] : 'DESC' ); } public static function boot() { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ self::deleted(function ($model) { $model->deleteFile($model->attributes['image'], 'intros'); }); } }
Back to File Manager