2011-04-20 47 views
0

我不熟悉CakePHP的太近。最近我遇到了使用Model的问题。我需要从数据库中获取一行,修改一些列值并保存。很简单,对吧?CakePHP的模型FindFirst方法的问题

什么我尝试做:

$condition = array('some_id_column' => $another_models_id); 
$model = $this->MyModel->findFirst($condition); 

但我在$模型变量得到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

这可能有助于阅读文档。它会引导你完成你需要知道的一切。 – 2011-04-20 02:04:32

+0

@cdburgess我不知道。谢谢:)我会......也许......很可能......有时候。 – Nemoden 2011-04-20 04:14:18

回答

2

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

+0

喔......事实上,我需要寻找的CakePHP的型号代码里面......我虽然'findFirst'由魔实现'__call'以及'findAll'。显然findAll被实现,魔术'__call'只实现'findBy '方法。 – Nemoden 2011-04-20 04:13:34