You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xshop/app/Models/Area.php

84 lines
1.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Area extends Model
{
// use HasFactory;
public static $allSegments = [
'ads',
'attachment',
'attachments',
'attachments_page',
'card',
'categories',
// 'categories_page',
'category',
'comments',
'contact',
'clip',
'clips',
'clips_page',
'comments',
'compare',
'customer',
'floats',
'footer',
'galleries',
'galleries_page',
'gallery',
'group',
'groups',
// 'groups_page',
'header',
'index',
'invoice',
'login',
'menu',
'other',
'parallax',
'post',
'posts',
'posts_page',
'preloader',
'product',
'products',
'product_grid',
'products_page',
'register',
'questions',
'search',
'slider',
'top',
];
protected $casts = [
'segments',
];
public function getSegmentAttribute()
{
return json_decode($this->valid_segments, true);
}
public function getRouteKeyName()
{
return 'name';
}
public function parts()
{
return $this->hasMany(Part::class);
}
public function defPart()
{
$p = $this->parts()->first();
return 'segments.' . $p->segment . '.' . $p->part . '.' . $p->part;
}
}