[英]Modify admin configuration values on save
我在 Grav 的管理面板中創建了一個配置表單,我想在保存時擴展/修改它的一些值。 更准確地說,我在藍圖中有一個如下所示的列表表單元素:
topics:
type: list
fields:
.name:
type: text
.unique_id:
type: text
readonly: true
default: generate_on_save
保存時,我想用唯一的 id 替換所有generate_on_save
值。 我試圖掛鈎onAdminSave事件,但事件 Object 僅包含\Grav\Common\Data\Blueprint的一個實例,沒有實際的表單數據。 然后我嘗試修改請求 object,但是當我在 Grav 容器中注冊修改后的請求時,我收到錯誤Cannot override frozen service 'request'
。
我怎樣才能完成這項任務?
我做了以下工作正常:
public function onAdminSave(Event $event) { /** @var Data */ $form = $event['object']; $topics = $form['topics']; // Note: foreach won't work for($i = 0; $i < count($topics); $i++) { if ($topics[$i]['unique_id'] === 'generate_on_save') { $topics[$i]['unique_id'] = str_rot13($topics[$i]['name']); } } // Note: Updated $form['topics'] must be re-assigned $form['topics'] = $topics; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.