• Время чтения ~0 мин
  • 10.09.2022

Пакет 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297