32 lines
736 B
PHP
32 lines
736 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Traits\Models;
|
|
|
|
use Illuminate\Contracts\Session\Session;
|
|
|
|
/** @mixin \Illuminate\Database\Eloquent\Model */
|
|
trait HasStatus
|
|
{
|
|
public function setStatus(bool $value): void
|
|
{
|
|
$this->setAttribute('status', $value);
|
|
}
|
|
|
|
public function toggleStatus(): void
|
|
{
|
|
$status = boolval($this->getAttribute('status'));
|
|
$this->setAttribute('status', ! $status);
|
|
}
|
|
|
|
protected static function makeStatusSense(self $model): void
|
|
{
|
|
if ($model->isDirty('status')) {
|
|
$session = resolve(Session::class);
|
|
$session->flash('info', \trans(
|
|
'crud.messages.publish_status_saved'
|
|
));
|
|
}
|
|
}
|
|
}
|