我在使用cakephp更新记录时遇到问题,这是第二次发生,无法弄清它是什么。.当我单击“提交”以始终更新记录时,始终将我发送到登录名,并且无论是登录我登录或注销我..我不明白..并且它从不更新记录,它只是跳转到登录内容...注册页面同样的东西..它在工作之前..我唯一改变的..是在app_controller中,而不是指定允许的控件,我只是为所有对象添加了“ *”,而现在却不允许更新或保存任何内容。.之所以这样做,是因为在pages / contact_us或pages / about_us下的其他页面他们也被Auth阻止,但是带有“ *”的消息消失了。

在我的App_Controller中,我将其设置为允许在before过滤器中进行所有操作,在控制器本身中,我也再次使用beforeFilter进行相同的操作..我已经尝试了所有方法..这是我的代码

App_Controller

<?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('*');

      } 

}

和我的视图,其中提交按钮在哪里

<?php

 echo $this->Form->create('DishRating', array('action' => 'rate_dish'));

 echo '<div><h3>Rate this Dish...</h3><p>You can rate this dish on this page and view other ratings from out customers...   </p></div>
    <table id="recipes">
     <tr>
         <td style="padding:10px;">';
         //<input type="hidden" name="userID" value="'.$rate_dishes[0]["DishRating"]["user_id"].'">
         echo $this->Form->hidden('id', array('value'=> $rate_dishes[0]["DishRating"]["user_id"]));
         //<input type="hidden" name="dish_id" value="'.$dish_rateid.'">
         echo $this->Form->hidden('rate_id', array('value'=> $rate_dishes[0]["DishRating"]["dish_id"]));
         echo '
         <span style="font-size: 20px; vertical-align:top;">Comments</span>
         </td>
         <td style="padding:10px;">';
         echo $this->Form->input('comments', array('type' => 'textarea', 'escape' => false , 'rows'=>'2','cols'=>'40', 'div' =>'false', 'label'=>''));
         //<textarea name="comments" cols="40" rows="2"></textarea>
         echo '</td>
         <td>
         <div>
          <input name="star1000" value "1" type="radio" class="star"/>
          <input name="star1000" value="2" type="radio" class="star"/>
          <input name="star1000" value="3" type="radio" class="star"/>
          <input name="star1000" value="4" type="radio" class="star"/>
          <input name="star1000" value="5" type="radio" class="star"/> 
          </div>
         </td>
         <td>';
          // <input type="submit" value="Submit" name="submitrating" class="button"/>
         echo $this->Form->end(array('value'=>'Submit','name'=>'submitrating', 'type' =>'submit', 'class'=>'button'));
         echo '</td>
    <tr>
    </table>'; 

      print("<table id='results'><tr><th>User Name</th><th>Comments</th><th>Star Rating</th></tr>");
     $j = 0;

         foreach ($rate_dishes as $key => $rate_dish):

         print("<tr>");   
         print("<td width='20px'>");
         print("<p style='font-size:14px; color:blue; padding:0;'>".$rate_dishes[$j]['User']['username']."</p>");

         print("</td>");          
         print("<td width='100px'>");
         print("<p style='font-size:14px; color:blue; padding:0;'>".$rate_dishes[$j]['DishRating']['rate_comments']."</p>");
         print("</td>");
         print("<td width='100px'>");
         print("<div>");
         for($i = 1; $i < 6;$i++)
         {
          if($i != $rate_dishes[$j]['DishRating']['rate_num'])
          {
              echo  '<input name="star'.$j.'"  type="radio" class="star" disabled="disabled"/>';
          } 
          else 
          {
              echo  '<input name="star'.$j.'"  type="radio" class="star" disabled="disabled" checked="checked"/>';
          }
         }
         print("</div>");
         print("</td>");
         print("</tr>");
         $j++;
         endforeach;

         print("</table>");      

      if($j> 6)
     {
         echo '<div id="pageNavPosition"></div>
         <div>&nbsp;</div>';      


           echo $this->Html->script('padminbottom.js');
     }
  ?>

请帮忙解决这个问题,我已经研究过了,去了CakePHP Cookbook,没什么...

===============>>#1 票数:0

如果要允许每个控制器的每个动作,则app_controller中的beforeFilter应该像

   function beforeFilter() {

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

  }

指定$this->allowedActions是另一回事,在这种情况下,您的Auth的authorize变量应设置为'controller'。 这意味着,每当用户请求操作时,都将检查其正确的用户名和密码。 之后,将由每个控制器实现的isAuthorize()函数检查该用户,以基于一些其他逻辑授予访问权限。

由于您没有使用该功能,因此无需指定allowedAction 如果您使用控制器进行授权,则指定allowedActions将默认允许某些操作,而无需在Controller::isAuthorize()检查它们。

  ask by user975582 translate from so

未解决问题?本站智能推荐:

1回复

Cake php从1.3迁移到2.x时需要一个问题的帮助

嗨,我们正在尝试迁移当前与Cakephp 1.3一起运行的网站,因此,我们首先尝试将Cakephp 2.X迁移到该站点,然后再尝试Cake3.x。 所以我面临的问题是我们有一些值被用作全局变量,在cakephp 1.3中,我们已经在app / config / config.php中定义了
1回复

cakephp:PHP版本问题(我认为)需要帮助

因此,我在本地使用cakePHP 1.2.1.8004来构建此网站,并且它是预先开发的,直到我动手使用为止,昨天我终于上传了它以便可以上线,但是显然有很多功能可以是不确定的,使我的网站全都“死亡的白屏” 在我本地,我使用xampp 1.7.1和php 5.2.9,而我的在线服务器使用php
1回复

CakePHP:需要使用saveField来更新belongsTo模型中的字段的帮助

我试图在CakePHP中将密码更新为两个不同的模型/表。 我可以在父模型中更新它,但不能在第二个模型中更新它。 这是在Users_controller.php中我的函数的精简版本: 当我执行该功能时,用户表会被更新。 但是gameprofile表未更新,而是Cake进行了插入
1回复

在cakephp中使用sprintf时需要帮助以删除数据

如果我使用单词链接删除如下 因此,将会有一条确认消息删除数据。 但是,如果我使用图标删除信息,如下所示 将会出现警告,并且消息也没有提示。
1回复

请任何人告诉我我如何解决这个问题。请帮助某人

通知(8):使用未定义的常数ankitgir_deshbhakt-假定为“ ankitgir_deshbhakt” [CORE / Cake / Model / ConnectionManager.php,第69行] ConnectionManager::_init() - CORE/Cake/M
1回复

CakePhp需要帮助

我是cakephp的新手。 为了更新安全性,我要求用户输入他的出生日期。 如果他输入正确的出生日期,我想向他显示另一种形式,其中包含他的安全性问题以及他的密码。 有两种不同形式:一种是安全性检查(出生日期验证),另一种是设置安全性(安全性问题+密码)。 如果设置了安全性,则首先显
1回复

在Cakephp updateAll中需要帮助

我需要使用updateall更新小部件的位置和列 如何使用updateAll
2回复

bootstrap cakephp需要帮助

我正在创建一个与cakephp2和bootstrap的表格一切正常,但我陷入了一点混乱,我不能解决这个问题任何bootstrap或蛋糕专家帮助我,谢谢, 检查这个包围它向上伸展 这是我的代码
3回复

需要我的代码帮助

我正在使用cakephp 1.26并进行分页。 您可以通过以下代码为我提供帮助吗? 我无法弄清楚代码中有什么问题。 在.ctp文件中,我有以下内容:
1回复

需要有关MySQL查询的帮助

我需要有关MySQL查询的帮助。 这是我的数据库的一部分: 和协会: 我想要的是结果表: 每个月(例如2010年)的常规帖子的username和summary大小,例如: 或类似的数组: 我可以为一个用户编写查询,但对于每个用户都不可以。 结果: