1. Go to this page and download the library: Download mtvs/eloquent-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/ */
use Illuminate\Database\Eloquent\Model;
use Mtvs\EloquentApproval\Approvable;
class Entity extends Model
{
use Approvable;
}
use Illuminate\Database\Eloquent\Model;
use Mtvs\EloquentApproval\Approvable;
class Entity extends Model
{
use Approvable;
const APPROVAL_STATUS = 'custom_approval_status';
const APPROVAL_AT = 'custom_approval_at';
}
$entity->update($attributes); // an update with approval
/**
* @return array
*/
public function approvalRequired()
{
return ['*'];
}
/**
* @return array
*/
public function approvalNotRequired()
{
return [];
}
Entity::anyApprovalStatus()->get(); // retrieving all
Entity::anyApprovalStatus()->find(1); // retrieving one
Entity::anyApprovalStatus()->delete(); // deleting all
use Illuminate\Database\Eloquent\Model;
use Mtvs\EloquentApproval\Approvable;
class Entity extends Model
{
use Approvable;
public $approvalScopeDisabled = true;
}
Entity::onlyPending()->get(); // retrieving only pending entities
Entity::onlyRejected()->get(); // retrieving only rejected entities
Entity::onlyApproved()->get(); // retrieving only approved entities
$entity->approve(); // returns bool if the entity exists otherwise null
$entity->reject(); // returns bool if the entity exists otherwise null
$entity->suspend(); // returns bool if the entity exists otherwise null
Entity::whereIn('id', $updateIds)->approve(); // returns number of updated
Entity::whereIn('id', $updateIds)->reject(); // returns number of updated
Entity::whereIn('id', $updateIds)->suspend(); // returns number of updated
$entity->isApproved(); // returns bool if entity exists otherwise null
$entity->isRejected(); // returns bool if entity exists otherwise null
$entity->isPending(); // returns bool if entity exists otherwise null
use Illuminate\Database\Eloquent\Model;
use Mtvs\EloquentApproval\Approvable;
class Entity extends Model
{
use Approvable;
protected static function boot()
{
parent::boot();
static::approving(function ($entity) {
// You can halt the process by returning false
});
static::approved(function ($entity) {
// $entity has been approved
});
// or:
static::observe(ApprovalObserver::class);
}
}
class ApprovalObserver
{
public function approving($entity)
{
// You can halt the process by returning false
}
public function approved($entity)
{
// $entity has been approved
}
}
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Mtvs\EloquentApproval\ApprovalFactoryStates;
class EntityFactory extends Factory
{
use ApprovalFactoryStates;
public function definition()
{
//
}
}
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Entity;
use Mtvs\EloquentApproval\HandlesApproval;
class EntitiesController extends Controller
{
use HandlesApproval;
protected function model()
{
return Entity::class;
}
}