Пакет Approval Laravel требует одобрения новых данных модели перед сохранением. Этот пакет использует Enums и, следовательно, требует PHP 8.1 и Laravel 9.
Чтобы начать работу с этим пакетом, используйте предоставленный трейт MustBeApproved
в модель:
use Cjmellor\Approval\Concerns\MustBeApproved;
class Post extends Model
{
use MustBeApproved;
// ...
}
Пакет использует полиморфную связь для хранения данных, которые должны быть утверждены, в новой таблице с именем approvals
. Вы можете запрашивать утверждения и устанавливать состояние для данного утверждения, используя следующие методы:
use App\Models\Approval;
// Get approvals, rejected models, and pending.
Approval::approved()->get();
Approval::rejected()->get();
Approval::pending()->count();
// Approve, reject or postpone an approval.
Approval::where('id', 1)->approve();
Approval::where('id', 2)->reject();
Approval::where('id', 3)->postpone();
Наконец, если вы хотите обойти процесс утверждения и сохранить модель, вы можете использовать следующий метод для вашей модели:
$model->withoutApproval()->update(['title' => 'Some Title']);
Вы можете начать работу с этим пакетом, просмотрев репозиторий на Github по адресу cjmellor/approval.