formatd / useractionhistory
Neos Flow 应用程序请求历史记录。
v1.0.0
2018-08-10 09:48 UTC
Requires
- neos/flow: >=4.0
This package is auto-updated.
Last update: 2024-09-24 21:56:25 UTC
README
Neos Flow 应用程序请求历史记录。本包主要用于构建 CRUD 类型的后端接口,但也可以用于很多其他用例。
它做什么?
它提供了一个会话作用域对象,可以将其添加到历史堆栈中。有了这个历史记录,可以处理回链或操作后的页面重定向等。
添加条目
将 UserActionHistory 注入您的控制器,并添加类似条目。您不应将不安全的请求(例如 POST)添加到历史记录中,因为如果您稍后重定向到它们,可能会产生意外结果。
$this->userActionHistory->addEntry('Edit Backend-User: ' . $user->getName(), $this->request, $user);
重定向到之前的请求
如果您想在更新操作中重定向到之前的请求,可以这样做。注意,您可以提供要跳过的操作模式(例如,如果您不想重定向到编辑操作,而是重定向到该请求之前的操作)。
if ($lastRequest = $this->userActionHistory->getLastActionRequest('UserManagement->edit')) {
$this->redirectToRequest($lastRequest);
} else {
$this->redirect('index');
}
显示历史条目的链接列表
如果您想构建访问过的最后几个页面(或 CRUD 应用程序中最后编辑的记录)的菜单,可以这样操作。
在控制器中
$this->view->assign('userActionHistoryEntries', $this->userActionHistory->getLastEntries(15, '*->index'));
在模板中
<ul>
<f:for each="{userActionHistoryEntries}" as="entry">
<li>
<f:link.action controller="History" action="redirectToActionHistoryEntry" package="FormatD.UserActionHistory" arguments="{entryId: entry.id}">
{entry.description}
</f:link.action>
</li>
</f:for>
</ul>
(别忘了在您的路由配置中使 HistoryController 可访问,并在需要时在您的策略配置中使其可访问)