mein-sterntours/app/Models/Sym/CmsContent.php
2025-04-01 10:40:14 +02:00

101 lines
3.8 KiB
PHP

<?php
namespace App\Models\Sym;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\Sym\CmsContent
*
* @property int $id
* @property string $name
* @property string $slug
* @property string $field
* @property string|null $text
* @property string|null $full_text
* @property int|null $integer
* @property float|null $decimal
* @property string|null $created_at
* @property string|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereDecimal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereField($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereFullText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereInteger($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent findSimilarSlugs($attribute, $config, $slug)
* @property string|null $identifier
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereIdentifier($value)
* @property array|null $object
* @property int|null $pos
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereObject($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|CmsContent withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug)
* @mixin \Eloquent
*/
class CmsContent extends Model
{
use Sluggable;
protected $connection = 'mysql';
protected $table = 'cms_contents';
protected $fillable = [
'name', 'slug', 'identifier', 'field', 'text', 'full_text', 'object', 'integer', 'decimal', 'pos',
];
protected $casts = [
'object' => 'array',
'pos' => 'int'
];
public $timestamps = false;
public function sluggable(): array
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function _format_number($value){
return preg_replace("/[^0-9,]/", "", $value);
}
public function setDecimalAttribute($value)
{
$value = $this->_format_number($value);
$value = substr($value, -13);
$this->attributes['decimal'] = (float) str_replace(',', '.', $value);
}
public function getDecimalAttribute()
{
if(isset($this->attributes['decimal'])){
// 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
return number_format(($this->attributes['decimal']), 2, ',', '.');
}
return "";
}
public function setIntegerAttribute($value)
{
$value = $this->_format_number($value);
$value = substr($value, -10);
$this->attributes['integer'] = intval($value);
}
}