Я не знаком с CakePHP слишком близко.Недавно я столкнулся с проблемой при использовании модели.Мне нужно получить только одну строку из базы данных, изменить некоторые значения столбцов и сохранить его обратно.Довольно просто, верно?
Что я пытаюсь сделать:
$condition = array('some_id_column' => $another_models_id);
$model = $this->MyModel->findFirst($condition);
НО я получаю FALSE
в переменной $ model.В то же время
$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, вы бы написали квитанцию, как это обычно делается там?