私は2つのモデルGroup_ones
とGroup_twos
を持っています。私はac_config.ctp
ファイルにこの値を示します。2つのモデルが1つのビューでどのように見え、1つのコントローラで2つのモデルの値を更新するか
マイコントローラコードが
public function ac_config($id = null)
{
if (!$id) {
$this->Session->setFlash('Please provide a Site id');
$this->redirect(array('action'=>'dashboard'));
}
$site_id_1 = $this->GroupOne->findById($id);
$site_name = $site_id_1['GroupOne']['site_name'];
$ac_one_time = $site_id_1['GroupOne']['ac_on_time_one'];
$group_one_active = $site_id_1['GroupOne']['active'];
$site_id_2 = $this->GroupTwo->findById($id);
$ac_two_time = $site_id_2['GroupTwo']['ac_on_time_two'];
$group_two_active = $site_id_2['GroupTwo']['active'];
if (!$site_id_1) {
$this->Session->setFlash('Invalid Site ID Provided');
$this->redirect(array('action'=>'dashboard'));
}
if (!$site_id_2) {
$this->Session->setFlash('Invalid Site ID Provided');
$this->redirect(array('action'=>'dashboard'));
}
if ($this->request->is('post') || $this->request->is('put')) {
$this->GroupOne->id = $id;
$this->GroupTwo->id = $id;
if (($this->GroupTwo->save($this->request->data)) || ($this->GroupOne->save($this->request->data))) {
$this->Session->setFlash(__('AC Configuration has been update'));
$this->redirect(array('action' => 'ac_config', $id));
}
else
{
$this->Session->setFlash(__('Unable to AC Configuration has been update.'));
}
}
$this->set(compact('site_name','ac_one_time','group_one_active'));
$this->set(compact('ac_two_time','group_two_active'));
$this->set('group_one', $site_id_1);
$this->set('group_two', $site_id_2);
if (!$this->request->data) {
$this->request->data = $site_id_1;
$this->request->data = $site_id_2;
}
}
未満で問題が場合I save
ボタン発生
以下の私のビューコンテンツです。グループ2のフォーム値はデータベースにのみ保存されます。
AC Run Time
と
AC Rest Time
は、フォームの値が
Model Group_twos
と
AC Run Time
と
AC Rest Time
のデータベースに保存
Group-2
を表示すると
Group-1
は、値が
Model Group_ones
のデータベースに保存形成を示しています。
もう一つの問題は、私は、この上記のコードを記述する場合
は、私は再び
if (!$this->request->data) {
$this->request->data = $site_id_2;
$this->request->data = $site_id_1; //this show rest time, run time.
}
を取得し、私は、この上記のコードを記述する場合、私は
しかし、私はAC Run Time and AC Rest Time
の両方のグループを同時に必要とし、モデルに保存するグループ値に対応する任意の2つのグループを保存ボタンをクリックすると。私の誤った論理。
ありがとうございました。
電源を入れ 'ます$ this->要求 - > data'を配列は、両方を保持することができます、現在あなたはそれを上書きします。 –
私はあなたのコメントをクリアしていません。もっと詳しく説明してください。 –
あなたのコードでは、 '$ this-> request-> data = $ site_id_1;を実行しています。 $ this-> request-> data = $ site_id_2;は、最初のものを2番目のものに上書きします。それが '$ this-> request-> data ['site_1'] = $ site_id_1だった場合、 $ this-> request-> data ['site_2'] = $ site_id_2;それを正しいモデルにループすることができます。 –