gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 21:22:56 24 4
gpt4 key购买 nike

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

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

但是好像不行,为什么?

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

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

感谢您的帮助。

最佳答案

我在 GitHub 上找到了我的问题的解决方案

$this->Crud->action()->config('saveOptions.accessibleFields', ['verified' => true])

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

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

关于php - 使用 CRUD 插件 [CakePHP 3] 更改可访问字段 BeforeSave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42542248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com