我对CakePHP的了解并不太熟悉。最近我使用Model遇到了问题。我需要从数据库中获取exaclty一行,修改一些列值并将其保存回来。很简单吧?
我该怎么做:
$condition = array('some_id_column' => $another_models_id);
$model = $this->MyModel->findFirst($condition);
但我在$ model变量中得到FALSE
。在同一时间
$condition = array('some_id_column' => $another_models_id);
$model = $this->MyModel->findAll($condition);
返回数组。它的结构类似于:
array (
0 =>
array (
'MyModel' =>
array (
'id' => '1',
'some_id_column' => '123456',
'some_field' => 'some text',
...
),
),
如果它没有返回数组数组,那么我会选择findAll
,而是返回模型数组(在我的情况下是一个模型)。我想要实现什么:
$condition = array('some_id_column' => $another_models_id);
$model = $this->MyModel->findFirst($condition);
$model->some_field = 'some another text';
$model->save();
你能帮助我理解它在CakePHP
中通常是怎么做的吗?
我也想知道为什么findAll
找到了行而findFirst
找不到它......这对我来说没有意义......他们应该以几乎相同的方式工作并使用相同的数据库API ......
如果我不能在CakePHP中做我想做的事,你会写一张收据,通常是在那里做的吗?
答案 0 :(得分:2)
有no such method as findFirst
您可能正在寻找find('first', array('conditions' => array(...)))
。