PHP code example of cjmellor / approval

1. Go to this page and download the library: Download cjmellor/approval 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/ */

    

cjmellor / approval example snippets


return [
    'approval' => [
        /**
         * The approval polymorphic pivot name
         *
         * Default: 'approvalable'
         */
        'approval_pivot' => 'approvalable',
    ],
];



use Cjmellor\Approval\Concerns\MustBeApproved;

class Post extends Model
{
    use MustBeApproved;

    // ...
}

return $model->isApprovalBypassed();

Post::create(['title' => 'Some Title']);

Post::create(['title' => 'Some Title', 'user_id' => 1]);

public function getApprovalForeignKeyName(): string
{
    return 'author_id';
}



use App\Models\Approval;

Approval::approved()->get();
Approval::rejected()->get();
Approval::pending()->count();



use App\Models\Approval;

Approval::where('id', 1)->approve();
Approval::where('id', 2)->reject();
Approval::where('id', 3)->postpone();

$approval->approveIf(true);
$approval->rejectIf(false);
$approval->postponeIf(true);

$approval->approveUnless(false);
$approval->rejectUnless(true);
$approval->postponeUnless(false);

ModelApproved::class
ModelPostponed::class
ModelRejected::class

Approval::find(1)->approve(persist: false);

Approval::first()->rollback();

Approval::first()->rollback(bypass: false); // default is true

Approval::first()->rollback(fn () => true);

// ModelRolledBackEvent::class

public Model $approval,
public Authenticatable|null $user,

$model->withoutApproval()->update(['title' => 'Some Title']);



use Cjmellor\Approval\Concerns\MustBeApproved;

class Post extends Model
{
    use MustBeApproved;

    protected array $approvalAttributes = ['name'];

    // ...
}
bash
php artisan vendor:publish --tag="approval-migrations"
php artisan migrate
bash
php artisan vendor:publish --tag="approval-config"