You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.6 KiB
91 lines
1.6 KiB
<?php
|
|
|
|
|
|
|
|
namespace App;
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
|
|
|
class SpUserPage extends Model{
|
|
|
|
|
|
|
|
protected $fillable = ['name_en', 'name_fa', 'description', 'sp_user_template_id', 'sp_page_id', 'business_id', 'sp_page_type_id', 'language_id'];
|
|
|
|
|
|
public function user_template()
|
|
|
|
{
|
|
|
|
return $this->belongsTo('App\SpUserTemplate','sp_user_template_id');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function page()
|
|
|
|
{
|
|
|
|
return $this->belongsTo('App\SpPage', 'sp_page_id');
|
|
|
|
}
|
|
|
|
|
|
public function frames()
|
|
{
|
|
return $this->belongsToMany('App\SpFrame','sp_user_frames');
|
|
}
|
|
|
|
|
|
|
|
public function user_frames()
|
|
|
|
{
|
|
|
|
return $this->belongsToMany('App\SpUserFrame', 'user_page_frame')->withPivot('frame_order');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function business()
|
|
|
|
{
|
|
|
|
return $this->belongsTo('App\Business');
|
|
|
|
}
|
|
|
|
public function page_type()
|
|
{
|
|
|
|
return $this->belongsTo('App\SpPageType', 'sp_page_type_id');
|
|
|
|
}
|
|
|
|
public function language()
|
|
{
|
|
|
|
return $this->belongsTo('App\Language', 'language_id');
|
|
|
|
}
|
|
|
|
public function scopePageType($query, $templateId, $languageId, $pageResponsibility, $pageType = '')
|
|
{
|
|
|
|
return $query->select('id', 'name_en', 'name_fa', 'sp_page_type_id', 'description')
|
|
->where('sp_user_template_id', $templateId)
|
|
->where('language_id', $languageId)
|
|
->whereHas('page_type', function($q) use ($pageType, $pageResponsibility) {
|
|
$q->where('responsibility', $pageResponsibility)->where('type', $pageType);
|
|
});
|
|
|
|
}
|
|
|
|
}
|