birzha-legalizasia/app/Models/Documentgroup.php

80 lines
2.4 KiB
PHP
Executable File

<?php
namespace App\Models;
use Backpack\CRUD\app\Models\Traits\CrudTrait;
use Backpack\CRUD\app\Models\Traits\SpatieTranslatable\HasTranslations;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Builder;
class Documentgroup extends Model
{
use CrudTrait;
use HasTranslations;
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'documentgroups';
// protected $primaryKey = 'id';
// public $timestamps = false;
// protected $guarded = ['id'];
protected $fillable = [
'name',
'description',
'type'
];
// protected $hidden = [];
// protected $dates = [];
protected $translatable = ['name', 'description'];
/*
|--------------------------------------------------------------------------
| FUNCTIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
public function documents():BelongsToMany{
return $this->belongsToMany(Document::class,'documentgroup_documents', 'documentgroup_id', 'document_id');
}
public function countries():BelongsToMany{
return $this->belongsToMany(Country::class,'documentgroup_countries', 'documentgroup_id', 'country_id');
}
/*
|--------------------------------------------------------------------------
| SCOPES
|--------------------------------------------------------------------------
*/
public function scopeWithDocs($query,$type,$country){
return $query->where('type',$type)
->whereHas('countries',function(Builder $query) use ($country){
$query->where('countries.id',$country);
})
->with('documents');
}
/*
|--------------------------------------------------------------------------
| ACCESSORS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| MUTATORS
|--------------------------------------------------------------------------
*/
}