Cakephp 更新时需要帮助解决问题吗

Cakephp 更新时需要帮助解决问题吗,cakephp,Cakephp,我在使用cakephp更新记录时遇到了问题,这是第二次出现这种情况,我无法弄清楚它是什么。。当我点击“提交”更新记录时,它总是会将我发送到登录名,它会让我登录或注销。。我不明白,而且它从不更新记录,只是跳转到登录页面,注册页面也是一样。。它以前工作过。。我唯一改变的是。。是在app_controller中,而不是指定要允许的控件,我只是为all添加了“*”,现在它不允许更新或保存任何内容。。我这样做的原因是因为在pages/contact\u us或pages/about\u us下的其他页面也

我在使用cakephp更新记录时遇到了问题,这是第二次出现这种情况,我无法弄清楚它是什么。。当我点击“提交”更新记录时,它总是会将我发送到登录名,它会让我登录或注销。。我不明白,而且它从不更新记录,只是跳转到登录页面,注册页面也是一样。。它以前工作过。。我唯一改变的是。。是在app_controller中,而不是指定要允许的控件,我只是为all添加了“*”,现在它不允许更新或保存任何内容。。我这样做的原因是因为在pages/contact\u us或pages/about\u us下的其他页面也被Auth阻止了,但使用“*”它就消失了

在我的App_控制器中,我将其设置为允许before过滤器中的所有内容,在控制器本身中,我有一个before过滤器,再次说明相同的内容。。我什么都试过了。。这是我的密码

应用程序控制器

<?php
class AppController extends Controller {    

    var $helpers = array('Html', 'Form', 'Javascript', 'Session'); 
    var $components = array('Auth', 'Session');

    function beforeFilter() {

       $this->Auth->allowedActions = array('*');
       $this->Auth->autoRedirect = false;

      } 
}
?>

我更新的一个控制器

<?php

class DishRatingsController extends AppController {

      function list_ratings() { 

         $this->loadModel('Dish');
         $this->set('list_ratings', $this->Dish->find('all')); 
         $this->layout = 'master_layout';

      }

      function  rate_dish($id = null)
      {
        $this->layout = 'master_layout';

        $this->set('rate_dishes', $this->DishRating->find('all', array(
            'conditions' => array(
               'Dish.id' => $id
          )
        )));

         if(!empty($this->data)) {         
             if($this->DishRating->save($this->data)) {                        
                $this->Session->setFlash("Rating Saved!");             
                 $this->redirect(array('action' => 'dish_ratings'));                  
             }         

        // set master layout
     }
    }

    function beforeFilter() {
       parent::beforeFilter(); 
       $this->Auth->allowedActions = array('*');

      } 

}

如果您想允许每个控制器的每个动作,您的app\u控制器中的
beforeFilter
应该是

   function beforeFilter() {

       $this->Auth->allow('*');
       $this->Auth->autoRedirect = false;

  }
指定
$this->allowedActions
是另一回事,在这种情况下,Auth的
authorize
变量应设置为“controller”。这意味着每当用户请求操作时,都会检查其正确的用户名、密码。之后,每个控制器执行的
isAuthorize()
函数将检查用户,以根据一些附加逻辑授予访问权限

由于您不使用该功能,因此不需要指定
允许操作
。如果您使用控制器进行授权,指定
allowedActions
默认情况下将允许某些操作,而无需在
controller::isAuthorize()

中选中它们,我在allow(*)中使用了它,并且发生了同样的事情。。不知道发生了什么
   function beforeFilter() {

       $this->Auth->allow('*');
       $this->Auth->autoRedirect = false;

  }