CakePHP模型findFirst方法问题

时间:2011-04-20 01:48:32

标签: php cakephp

我对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中做我想做的事,你会写一张收据,通常是在那里做的吗?

1 个答案:

答案 0 :(得分:2)

no such method as findFirst 您可能正在寻找find('first', array('conditions' => array(...)))