belongsTo('App\\Business'); } public function frame() { return $this->belongsTo('App\\SpFrame','sp_frame_id'); } public function parent() { return $this->belongsTo('App\\SpUserFrame', 'parent_id'); } public function children() { return $this->hasMany('App\\SpUserFrame', 'parent_id'); } public function user_pages() { return $this->belongsToMany('App\SpUserPage', 'user_page_frame')->withPivot('frame_order'); } public function business_items() { return $this->morphedByMany('App\\BusinessItem', 'element', 'sp_user_elements'); } public function news() { return $this->morphedByMany('App\\News', 'element', 'sp_user_elements'); } public function categories() { return $this->morphedByMany('App\\Category', 'element', 'sp_user_elements'); } public function posts() { return $this->morphedByMany('App\\Post', 'element', 'sp_user_elements'); } public function products() { return $this->morphedByMany('App\\Product', 'element', 'sp_user_elements'); } public function elements() { return $this->hasMany('App\\SpUserElement', 'sp_user_frame_id')->orderBy('element_order'); } public function links() { return $this->morphMany('App\SpLink', 'linkable'); } public function images() { return $this->morphToMany('App\Gallery','uploadable')->withPivot('image_role'); } public function scopeSection($query, $frameTypeId, $userTemplateId, $masterPageId, $languageId) { return $query->where('language_id', $languageId)->where('sp_user_template_id', $userTemplateId) ->whereHas('frame', function ($q1) use ($frameTypeId, $masterPageId) { $q1->where('sp_page_id', $masterPageId)->where('sp_frame_type_id', $frameTypeId); }); } public function language() { return $this->belongsTo('App\\Language', 'language_id'); } /******************************************************* accessors and mutators *******************************************************/ public function getDataAttribute($value) { return json_decode($value, true); } public function setDataAttribute($value) { $this->attributes['data'] = json_encode($value, JSON_UNESCAPED_UNICODE); } public function getFrameOrderAttribute() { return $this->pivot->frame_order; } public function getThumbnailAttribute() { if ($this->frame->title_image->isNotEmpty()) { return $this->frame->title_image[0]->path; } return 'WM-Main/Assets/NoPreview/preview.png'; } public function getTypeAttribute() { return $this->frame->frame_type->type; } public function getNameEnAttribute() { return $this->frame->name_en; } public function getNameFaAttribute() { return $this->frame->name_fa; } }