簡體   English   中英

更改可訪問字段BeforeSave使用CRUD插件[CakePHP 3]

[英]Change accessible fields BeforeSave using CRUD plugin [CakePHP 3]

如果用戶是經理,我正在嘗試更改可訪問的字段beforeSave

$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]); 但無法讓它發揮作用。 我在crud插件上發送了一個問題 GitHub頁面希望能在那里獲得更多回復。

謝謝你的幫助。

我在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) {
    /*[...]*/
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM