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/Item.php

53 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
class Item extends Model
{
use HasFactory,HasTranslations;
public $translatable = ['title'];
public function menu()
{
return $this->belongsTo(Menu::class, 'menu_id', 'id');
}
public function parent()
{
return $this->belongsTo(Item::class, 'parent');
}
public function children()
{
return $this->hasMany(Item::class, 'parent');
}
public function dest(){
return $this->morphTo('menuable','menuable_type','menuable_id');
}
public function webUrl(){
if ($this->kind == 'direct'){
if ( config('app.xlang.active') && app()->getLocale() != config('app.xlang.main')){
if ($this->meta[0] != '/'){
$welcome = \route('client.welcome');
return str_replace($welcome,$welcome .'/'.app()->getLocale(),$this->meta);
}else{
return '/'.app()->getLocale() . $this->meta;
}
}
return $this->meta;
}else{
return $this->dest->webUrl();
}
}
}