lk.zachem.info/app/Modules/Bitrix/Traits/Bitrixable.php
2025-08-04 01:04:03 +08:00

53 lines
1.1 KiB
PHP

<?php
namespace Modules\Bitrix\Traits;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Database\Eloquent\Model;
use Modules\Bitrix\Models\BitrixId;
trait Bitrixable
{
private function bitrixable(): MorphOne
{
return $this->morphOne(BitrixId::class, 'bitrixable');
}
public function bitrixId()
{
if ($row = $this->bitrixable()->first())
{
return $row->bx_id;
}
return false;
}
public function setBitrixId($id): bool
{
$this->bitrixable()->delete();
$bitrixId = new BitrixId([
'bx_id' => $id
]);
if ($this->bitrixable()->save($bitrixId))
{
return true;
}
return false;
}
protected static function booted()
{
static::deleted(function ($bitrixableItem)
{
$this->bitrixable()->delete();
});
static::forceDeleted(function ($bitrixableItem)
{
$this->bitrixable()->delete();
});
}
}