1. Go to this page and download the library: Download reynotech/laravel-approvals library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
reynotech / laravel-approvals example snippets
use ReynoTECH\Approvals\Concerns\RequiresApprovalWhenChanges;
use ReynoTECH\Approvals\Contracts\Approvable;
class Client extends Model implements Approvable
{
use RequiresApprovalWhenChanges;
protected int $approversRequired = 1;
protected int $disapproversRequired = 1;
// Decide when a change needs approval instead of saving directly.
protected function
use ReynoTECH\Approvals\Concerns\ApprovesChanges;
use ReynoTECH\Approvals\Contracts\Approver;
class User extends Authenticatable implements Approver
{
use ApprovesChanges;
}
$client->billing_address = $newAddress;
$client->save(); // captured as a pending Modification instead of persisted
$modification = $client->modifications()->activeOnly()->first();
$user->approve($modification, 'confirmed with client');
// once approvers_
class Report extends Model implements Approvable
{
use RequiresApprovalWhenChanges;
protected function approvableItemGroups(array $dirtyKeys): array
{
return [
'rules' => ['rules'],
'notes' => ['notes'],
];
}
}
$modification = $report->modifications()->activeOnly()->first();
$rulesItem = $modification->items()->where('key', 'rules')->first();
$notesItem = $modification->items()->where('key', 'notes')->first();
$user->approveItem($rulesItem, 'rules look right'); // only `rules` is written back
$user->disapproveItem($notesItem, 'notes are wrong'); // `notes` is left untouched
$modification->fresh()->status; // 'partially_resolved'