12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace App\Models;
- use App\Models\Enums\FileObjectType;
- use App\Models\Scopes\CompanyScope;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Support\Facades\Auth;
- use Predis\Command\Redis\SDIFF;
- class File extends Model
- {
- use HasFactory, SoftDeletes;
- protected $guarded = ['id'];
- protected static function booted(): void
- {
- if (Auth::check() && !Auth::user()->super_admin) {
- static::addGlobalScope(new CompanyScope);
- }
- }
- public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
- {
- return $this->belongsTo(User::class, "created_by");
- }
- public function folder(): \Illuminate\Database\Eloquent\Relations\BelongsTo
- {
- return $this->belongsTo(Folder::class);
- }
- public function container()
- {
- return $this->belongsTo(Container::class, 'object_id')->where('object_type', FileObjectType::CONTAINER->value);
- }
- public function bimFile(): \Illuminate\Database\Eloquent\Relations\HasOne
- {
- return $this->hasOne(BimFile::class);
- }
- // 某个容器库的文件
- public function scopeContainerLibraryId($query, int $libraryId = 0)
- {
- return $query->whereHas('container', function ($query) use ($libraryId) {
- if ($libraryId > 0) {
- return $query->where('library_id', $libraryId);
- }
- });
- }
- }
|