无法从浏览器调用函数,requestAction有问题吗?

时间:2011-07-13 17:59:59

标签: cakephp

我几天前在这里问过一个问题,关于如何避免从浏览器调用函数。一些不错的人指出,如果在函数名称之前加上下划线,它只接受来自app内部的调用。但是,通过这样做,我无法从一个元素调用该函数(通过使用requestAction)。还有另一种方法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你不能从它的课外调用私有或受保护的方法; (这是私人和受保护方法的全部意义!)

除非我弄错了,否则唯一的选择是将方法设为公开,或者在其他方法中调用它,如果您担心用户不小心调用它,可能会使用模糊的方法名称。

您还可以使用以下方式检查请求是否通过requestAction发出:

if (!empty($this->params['requested'])) { 
    //requestAction was used, requested is set to 1
}

因此,您可以在公共方法中使用它,并根据是否请求执行相应的操作。