facebook中的CakePHP表单在初始加载时进行验证

facebook中的CakePHP表单在初始加载时进行验证,facebook,forms,cakephp,cakephp-2.4,Facebook,Forms,Cakephp,Cakephp 2.4,我有一个简单的CakePHP表单(版本2.4)。如果我在浏览器中打开url,一切正常,表单仅在我第一次单击“提交”后验证。但是,如果我把同一个表单放在Facebook应用程序中(作为页面选项卡),那么同一个表单会立即验证,并在用户甚至单击提交之前输出所有错误(当然,因为在初始加载时,所有必需的字段都是空的) 窗体的我的控件添加: public function add($id = null) { $this->set('title_for_layout', "Fb Form");

我有一个简单的CakePHP表单(版本2.4)。如果我在浏览器中打开url,一切正常,表单仅在我第一次单击“提交”后验证。但是,如果我把同一个表单放在Facebook应用程序中(作为页面选项卡),那么同一个表单会立即验证,并在用户甚至单击提交之前输出所有错误(当然,因为在初始加载时,所有必需的字段都是空的)

窗体的我的控件添加:

public function add($id = null) {
    $this->set('title_for_layout', "Fb Form");

    if (!empty($this->data)) {
        $this->Application->create($this->data);
        if ($this->Application->save()) {
            $this->Application->saveField('fbapp_id', $id);
            $this->Session->setFlash('Form saved');
            $this->redirect(array('action' => 'add'));
        } else {
            $this->Session->setFlash('Form not saved');
        }
    }
}

任何帮助都将非常感谢,所以请提前通知我们

您应该提供CakePHP版本…抱歉,编辑了文章并添加了一个标记。我用蛋糕2.4thnx来引起注意!您的验证很可能只是由POST的请求方法触发的……如您所知,应用程序通过向iframe发布表单加载到Facebook iframe……尝试检查empty和isset:
if(!empty($this->data)&&isset($this->data['Application'))
什么是最好的解决方法,使用户在实际提交之前不会总是看到所有错误?