2012-01-22 156 views
1

我使用CakePHP的第一次和我的控制器中我需要切换我的模型的实例的属性的状态:阅读对象属性使用CakePHP

function toggleAutoMark($id = null) { 
    $this->Test->id = $id; 
    $this->Test->saveField('automark', !$this->Test->read('automark')); 
    $this->redirect(array('controller' => 'tests', 'action' => 'view', $id)); 
} 

我不知道,如果我打算使用read()方法,但是这会返回一个数组(这不是我认为文档所说的)。

$this->Test->automark 

不起作用,大概是因为该实例尚未加载。

回答

2

你可能寻找

Model::field() 

,因此

$this->Test->field('automark'); 

虽然这不是从性能的角度来看一个非常好的主意。

model :: updateAll会执行一个原子查询,它会在这里更适合您(请参阅相关文档)。