编辑所有功能不起作用 - CakePHP

时间:2012-06-25 15:00:20

标签: loops cakephp foreach edit

我正在开发一项功能来编辑表格中的所有项目。

以下是我的控制器的编辑操作:

public function editAll()
    {
        $this->set('isEditAllValid', false);
        $this->set('editAllValidationErrors', false);

        if ($this->request->is('post'))
        {
            $this->LocalClock->table = 'local_clocks';
            $this->LocalClock->getDataSource()->tableFields['local_clocks'] = array( "id", "name", "auto_offset", "utc_offset_sec", "in_month", "in_week", "in_day", "in_hour", "out_month", "out_week", "out_day", "out_hour", "offset_sec");
            $this->set('localClocksEntries', $this->LocalClock->find('all'));
            if ($this->LocalClock->save($this->request->data))
            {
                foreach($localClocksEntries as $LocalClock)
                {
                    $this->set('LocalClock', $this->request->data);
                    $this->LocalClock->save($LocalClock);
                    $this->set('isEditAllValid', true);
                    $this->set('editAllValidationErrors', false);
                }
            }
            else
            {
                $this->set('isEditAllValid', false);
                $this->set('editAllValidationErrors', true);
            }
        }
    }

我在代码中做的是,将一些布尔变量设置为false(验证内容),然后如果操作是一个帖子,则抓取本地时钟表并将其插入变量进行存储。然后遍历该变量并保存发布到表中每个项目的数据。

我不知道为什么但是在尝试编辑所有内容时我遇到了2个错误。

  

注意(8):未定义的变量:localClocksEntries [APP / Controller / LocalClocksController.php,第158行]
  警告(2):为foreach()提供的参数无效[APP / Controller / LocalClocksController.php,第158行]

基本上我只想循环遍历表格中的每一行,并将内容更改为用户在表单中输入的内容。

1 个答案:

答案 0 :(得分:3)

$this->set('localClocksEntries', $this->LocalClock->find('all'));

这为视图设置了一个变量 。它不会在当前范围中创建该变量。因此$localClocksEntries中不存在变量foreach ($localClocksEntries ...。如果要使用当前范围中的变量并将传递给视图,请执行以下操作:

$localClocksEntries = $this->LocalClock->find('all');
$this->set('localClocksEntries', $localClocksEntries);