CakePHP重定向回同一页面

时间:2012-11-26 12:30:54

标签: php cakephp

我有一个组模型和另一个Notes模型(Notes和Posts是相同的东西)。

NotesController:

   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 个答案:

答案 0 :(得分:4)

这个问题可能会对您有所帮助:What is the equivalent to getLastInsertId() in Cakephp?

$this->redirect(array(
           'controller'=>'groups',  
           'action' => 'viewcourse/'.$this->Group->getLastInsertId())
            );

编辑: 我只建议您转到组的最后一个插入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));

让你的代码更精简