Skip to content

Approvable model

Pe Ell edited this page Apr 17, 2017 · 3 revisions

Setup an approvable model

With boolean flag

<?php

namespace App\Models;

use Cog\Flag\Traits\Classic\HasApprovedFlag;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasApprovedFlag;
}

Model must have boolean is_approved column in database table.

With timestamp flag

<?php

namespace App\Models;

use Cog\Flag\Traits\Classic\HasApprovedAt;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasApprovedAt;
}

Model must have nullable timestamp approved_at column in database table.

Available functions

Get only approved models

Post::all();
Post::withoutDisapproved();

Get only disapproved models

Post::onlyDisapproved();

Get approved + disapproved models

Post::withDisapproved();

Approve model

Post::where('id', 4)->approve();

Disapprove model

Post::where('id', 4)->disapprove();
Clone this wiki locally