formatd/useractionhistory

Neos Flow 应用程序请求历史记录。

v1.0.0 2018-08-10 09:48 UTC

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 可访问,并在需要时在您的策略配置中使其可访问)