Joomla 2.5中的前端编辑-JController::checkEditId()返回false



所以我遇到了一个有点奇怪的问题,似乎找不到解决方案。也许有人也有同样的问题,可以提供一些线索。

我正在编写一个组件,并添加前端编辑,但当我保存前端表单时,我会出现以下错误:

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

我已经追踪到JController中的checkEditId()函数的问题。它返回false,因为"不知何故,我刚到达表单,却没有点击链接"。因此,我知道我必须以某种方式设置UserState('cm_component.context.item',$id);因为问题是"id"不在userstate会话中。

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

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

我遇到了完全相同的问题。对我来说,解决这个问题的方法是确保列表视图中的URL格式是正确的。所以我有:

administrator/index.php?option=com_helloworld&视图=报价&layout=edit&offer_id=27

但您需要如下URL:

administrator/index.php?option=com_helloworld&task=offer.edit&offer_id=27

这样可以确保正在编辑的项的ID被添加到会话范围中,然后在checkEditId()中进行检查。

这应该能解决你的问题。

相关内容

  • 没有找到相关文章

最新更新