これはおそらく簡単な質問ですが、モデルのオブジェクトを作成しようとして苦労しています。アクションに投稿するデータに従って内部値を更新できるように、モデルと同じ一時変数を作成したいと考えています。
私のデータはコントローラーのアクションに正常に投稿されました。現在私がやっていることは、データベース内のすべてのアイテムを取得してから、配列の最初のアイテムに割り当てることです。この方法で既存の値を上書きできますが、テーブルが空の場合は機能しません。
私は Cakephp 2.x を使用しています。
コントローラーからのコードは次のとおりです。
public function lcadd()
{
if ($this->request->is('post'))
{
// Create a new Local Clock object
$temp = $this->LocalClock->find('all'); // THIS IS THE PROBLEM AREA
$temp = $temp[0];
$temp['LocalClock']['name'] = $this->request->data['LocalClock']['Name'];
debug($temp); // THIS DEBUG ONLY DISPLAYS SOMETHING IF THE DATABASE TABLE IS NOT EMPTY
debug($this->request->data); // THE DATA COMING IN IS CORRECT AND I CAN ACCESS IT WITHOUT A PROBLEM
if($this->request->data['LocalClock']['Time Zone'] == 0 or $this->request->data['LocalClock']['Time Zone'] == -1)
{
//debug('Hello');
$temp['LocalClock']['auto_offset'] = 1;
}
else if($this->request->data['LocalClock']['Time Zone'] == 1)
{
$temp['LocalClock']['auto_offset'] = 0;
}
// Check the value posted from the DST
if($this->request->data['LocalClock']['DST Definition'] == -1 or $this->request->data['LocalClock']['DST Definition'] == 0)
{
$temp['LocalClock']['in_month'] = 0;
}
else if($this->request->data['LocalClock']['DST Definition'] == 2)
{
$temp['LocalClock']['in_month'] = $this->request->data['LocalClock']['InMonth'];
}
if ($this->LocalClock->save($temp))
{
$this->set('localClocks', $this->request->data);
$this->set('islcAddValid', true);
$this->set('lcaddValidationErrors', false);
}
}
}
モデルから単純なオブジェクトを作成する方法がわかりません。モデルは LocalClock で、コントローラーは LocalClocksController です。上記の関数は LocalClocksController にあります。
前もって感謝します。