0

所以我遇到了一个奇怪的问题,似乎找不到解决方案。也许有人遇到过同样的问题,可以解释一下。

我正在编写一个组件,我正在向它添加前端编辑,但是当我保存我的前端表单时,我最终得到以下错误:

您不得使用该链接直接访问该页面 (#1)。

我已将问题追溯到 JController 中的 checkEditId() 函数。它返回 false ,因为“我以某种方式刚刚到达表单而没有单击链接”。所以我明白我必须以某种方式 setUserState('com_component.context.item', $id); 因为问题是“id”不在用户状态会话中。

但是我在哪里添加呢?我尝试使用 setUserState() 函数手动添加它,但这似乎不起作用,我还可以看到 com_content 不是那样做的?

我如何告诉 Joomla 允许用户编辑项目 - 不是从 ACL 的角度,而是从 - 他只是点击编辑链接的角度?

4

1 回答 1

3

我遇到了完全相同的问题。为我解决的问题是确保列表视图中的 URL 格式正确。所以我有:

管理员/index.php?option=com_helloworld&view=offer&layout=edit&offer_id=27

但您需要如下 URL:

管理员/index.php?option=com_helloworld&task=offer.edit&offer_id=27

这可确保将正在编辑的项目的 ID 添加到会话范围中,然后在 checkEditId() 中检查该范围。

这应该可以解决您的问题。

于 2012-08-08T10:54:24.483 回答