CakePHP重定向回同一页面

CakePHP重定向回同一页面,php,cakephp,Php,Cakephp,我有一个小组模型和另一个笔记模型,笔记和帖子都是一样的 注意控制器: public function groupnotes() { if (!empty($this->data)) { $data = $this->data; $data['Note']['user_id'] = $this->Auth->user('id'); if ($this->Note->save($dat

我有一个小组模型和另一个笔记模型,笔记和帖子都是一样的

注意控制器:

   public function groupnotes()
   {

    if (!empty($this->data))
     {
        $data = $this->data;
       $data['Note']['user_id'] = $this->Auth->user('id');

        if ($this->Note->save($data))
           {
             PROBLEM HERE
           } 
      }


   if(empty($this->data['Note']['notes']))
      {
        PROBLEM HERE
      } 
GroupsController:ViewCourse用于查看每个组

public function viewcourse($id=NULL)
 {
    $this->set('viewcourse', $this->Group->read(NULL,$id));
    $this->set('course', $this->Group->find('all', array('conditions'=>array('Group.id'=>$id))));

}
现在,当我在组中创建帖子时,它会将我重定向到groupnotes操作,我希望它将我重定向到viewcourse/id。。。我有点困惑如何将页面重定向到viewcourse/id

我尝试通过将此添加到groupnotes操作中来实现

 $this->redirect(array('controller'=>'groups',  'action' => 'viewcourse'));
但这里我没有身份证


你有什么建议?

这个问题可能会帮助你:

编辑: 我只是建议您转到组的最后一个插入id作为建议。你说的时候你的问题有点含糊,但我这里没有身份证。 1.您是否希望使用任何有效的课程id? 2.最后一次参加课程? 3.第一个输入的课程id

或者,您可以在控制器中设置默认航向,如下所示

public function viewcourse($id=NULL)
 {
    if(!$id){
         $id = $this->Group->find('first');
         $id = $id['Group']['id'];
    } 
    $this->set('viewcourse', $this->Group->read(NULL,$id));
    $this->set('course', $this->Group->find('all', array('conditions'=>array('Group.id'=>$id))));

}
注意:只是一个提示

 $this->set('course', $this->Group->find('all', array('conditions'=>array('Group.id'=>$id))));
可以用

 $this->set('course', $this->Group->findById($id));

为了使代码更加精简,这个问题可能会帮助您:

编辑: 我只是建议您转到组的最后一个插入id作为建议。你说的时候你的问题有点含糊,但我这里没有身份证。 1.您是否希望使用任何有效的课程id? 2.最后一次参加课程? 3.第一个输入的课程id

或者,您可以在控制器中设置默认航向,如下所示

public function viewcourse($id=NULL)
 {
    if(!$id){
         $id = $this->Group->find('first');
         $id = $id['Group']['id'];
    } 
    $this->set('viewcourse', $this->Group->read(NULL,$id));
    $this->set('course', $this->Group->find('all', array('conditions'=>array('Group.id'=>$id))));

}
注意:只是一个提示

 $this->set('course', $this->Group->find('all', array('conditions'=>array('Group.id'=>$id))));
可以用

 $this->set('course', $this->Group->findById($id));

为了使您的代码更精简

我们不能将其添加到NoteController中,因为它采用的模型是Group,其次我们希望将其重定向到etc etc id not notesview的Group视图,因此使用getLastInsertId将采用表中最后插入的注释的id。如果您的模型设置正确,您应该能够使用$this->Note->Group->getLastInsertID访问所需的数据;反之亦然。。。根据您的模型关联。findall应该是findfirst或findById,如您所述。有一个预期结果的findall没有意义:b$this->Note->id通常比使用getLastInsertIdwell更好,这些更正不是针对你的,而是针对提问者的,当然:sry没有提到这一点。谢谢大家。这很有帮助:我们无法将其添加到NoteController中,因为它采用的模型是组,其次我们希望将其重定向到etc id not notesview的组视图,因此使用getLastInsertId将采用表中最后插入的注释的id。如果您的模型设置正确,您应该能够使用$this->Note->Group->getLastInsertID访问所需的数据;反之亦然。。。根据您的模型关联。findall应该是findfirst或findById,如您所述。有一个预期结果的findall没有意义:b$this->Note->id通常比使用getLastInsertIdwell更好,这些更正不是针对你的,而是针对提问者的,当然:sry没有提到这一点。谢谢大家。这很有帮助: