QR_code_generator/app/Models/Objects/Values/DocumentValue.php

38 lines
1.0 KiB
PHP

<?php
namespace App\Models\Objects\Values;
use App\Models\Asset;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class DocumentValue extends Value {
protected $table = 'field_document_values';
protected $fillable = [
'object_id',
'field_id',
'asset_id'
];
public function asset(): BelongsTo {
return $this->belongsTo(Asset::class);
}
public function get() {
return $this->asset;
}
public function set($value): bool {
if (!is_object($value)) $value = Asset::query()->where(['uuid' => $value])->first();
return is_object($value) ? $this->update(['asset_id' => $value->id]) : !$this->delete();
}
public static function applyFilter($query, $value) {
$value = is_array($value) ? $value : [$value];
$query->whereHas('asset', function($query) use($value) {
$query->where(function($query) use($value) {
$query->whereIn('uuid', $value)->orWhereIn('name', $value);
});
});
}
}