2

グループ用のモデルとメモ用の別のモデルがあります(メモと投稿は同じものです)。

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を持っていません。

何を指示してるんですか?

4

1 に答える 1

4

この質問はあなたを助けるかもしれません:CakephpのgetLastInsertId()と同等のものは何ですか?

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

編集:私はあなたが提案としてグループの最後に挿入された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));

コードを少しスリムにするため

于 2012-11-26T12:38:55.510 に答える