使用 CRUD 插件 [CakePHP 3] 更改可访问字段 BeforeSave

Change accessible fields BeforeSave using CRUD plugin [CakePHP 3]

如果用户是经理,我正在尝试更改保存前的可访问字段

$this->Crud->on('beforeSave', function(Event $event) {
    if($this->Auth->user('role') == 'Manager')
    {
        $this->Crud->action()->saveOptions(['accessibleFields' => ['verified' => true]]);
    }
});

但是好像不行,为什么?

编辑:澄清一下,我正在尝试通过我的 API 执行 PUT HTTP 请求并更改字段 "verified" 的值。我可以更改我在 entity.php 中设置为可访问的每个字段就好了,但是当我尝试在上面的 beforeSave 之后更改 "verified" 字段时,我没有看到对象有任何变化,因为好像没有设置字段 has accessible.

编辑 2:根据 CRUD 插件的官方文档,我试过这样做 $this->Crud->action()->saveOptions(['atomic' => false]); 但无法正常工作。我已经在 crud 插件 GitHub 页面上发送了一个 issue,希望那里能得到更多回复。

感谢您的帮助。

我在 GitHub

上找到了问题的解决方案
$this->Crud->action()->config('saveOptions.accessibleFields', ['verified' => true])

我必须在我的控制器方法中使用它,我不需要 beforeSave。我的代码看起来像这样

if($this->Auth->user('role') == 'Manager') $this->Crud->action()->config('saveOptions.accessibleFields', ['verified' => true]);
$this->Crud->on('afterSave', function(Event $event) {
    /*[...]*/
}