0

次のように、cakephp を使用して記述されたコードがあります。

if($this->Session->read($this->_username)){
       if(!empty($this->data)){       
          $data = array(                
                    'fullname' => $this->data['Table']['fullname'],                 
                    'lastname' => $this->data['Table']['lastname'],
                    'title' => $this->data['Table']['title'],                       
                    'language' => $this->data['Table']['language']                              
                );

                if ($this->Table->save($data)) {                            
                    $this->redirect('okpage');
                }
            }
        }

組み込みの保存関数は、データ配列をデータベース テーブル X に保存します。たとえば、テーブル Y に保存される別の要素 employeeid を追加したいと思います。したがって、上記のコードは次のようになります

if($this->Session->read($this->_username)){
       if(!empty($this->data)){          
          $data = array(               
                    'fullname' => $this->data['Model']['fullname'],                    
                    'lastname' => $this->data['Model']['lastname'],
                    'title' => $this->data['Model']['title'],                      
                    'employeeid' => $this->data['Model']['employeeid'],
                    'language' => $this->data['Model']['language']                             
                );

                if ($this->Model->save($data)) {                          
                    $this->redirect('okpage');
                }
            }
        }

データを保存するif文の式で何を変更すればよいのか困っています。データ配列を保存する元のコードは、データをテーブル X に保存するために使用されるため、挿入によってデータが台無しになり、頭も混乱します。

4

1 に答える 1

0

X テーブルと Y テーブルの間に関係を設定すると、CakePHP はこの種のことを自動的に行うのに役立ちます。

あなたの質問には、この関係がどうあるべきかを推測するのに十分な情報がありませんが、X が Y に属している、または Y が多くの X を持っている、または ...

CakePHP ブックのこのセクションを読んでください: http://book.cakephp.org/1.3/en/view/1039/Associations-Linking-Models-Togetherを紹介してください。

于 2012-05-21T02:49:22.450 に答える