ACL 中的附加条件

你还可以添加一些必须使用匿名函数检查 ACL 的逻辑。它们将在使用 Phalcon\Acl\Adapter\Memory::allow()Phalcon\Acl\Adapter\Memory::deny() 时执行,如果它们将返回 true,则允许它们角色访问资源上的某些操作。

$acl->allow('Customer', 'products', 'create', function($parameter) {
    return $parameter % 2 == 0;
});
$acl->isAllowed('Customer', 'products', 'create', ['parameter' => 1]); // this will return false
$acl->isAllowed('Customer', 'products', 'create', ['parameter' => 2]); // this will return true

注意参数如何传递给函数。你在数组中的键需要与函数中的名称相同。还可以传递默认参数参数以及对象。