所以我遇到了一个有点奇怪的问题,似乎找不到解决方案。也许有人也有同样的问题,可以提供一些线索。
我正在编写一个组件,并添加前端编辑,但当我保存前端表单时,我会出现以下错误:
您不允许使用该链接直接访问该页面(#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()中进行检查。
这应该能解决你的问题。