Laravel审批包需要在新的模型数据被持久化之前进行审批。这个包使用Enums,因此需要PHP 8.1和Laravel 9。
要开始使用这个包,在一个模型上使用提供的MustBeApproved trait。
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']);