56 lines
1.4 KiB
PHP
56 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Shop;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Znck\Eloquent\Relations\BelongsToThrough as RelationsBelongsToThrough;
|
|
use Znck\Eloquent\Traits\BelongsToThrough;
|
|
|
|
class Unity extends Model
|
|
{
|
|
use BelongsToThrough, softDeletes;
|
|
|
|
protected $guarded = ['id'];
|
|
|
|
protected $table = 'shop_unities';
|
|
|
|
public function package(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Package::class);
|
|
}
|
|
|
|
public function variations(): HasMany
|
|
{
|
|
return $this->hasMany(Variation::class);
|
|
}
|
|
|
|
public function article_family(): RelationsBelongsToThrough
|
|
{
|
|
return $this->belongsToThrough(
|
|
ArticleNature::class,
|
|
Package::class,
|
|
null,
|
|
'',
|
|
[
|
|
'App\Models\Shop\ArticleNature' => 'article_family_id',
|
|
'App\Models\Shop\Package' => 'package_id'
|
|
]
|
|
);
|
|
}
|
|
|
|
public function scopeByPackage($query, $id)
|
|
{
|
|
return $query->where($this->table . '.package_id', $id);
|
|
}
|
|
|
|
public function scopeByArticleNature($query, $id)
|
|
{
|
|
return $query->whereHas('package', function ($query) use ($id) {
|
|
$query->byArticleNature($id);
|
|
});
|
|
}
|
|
}
|