Модели CakePHP проблема с методом findFirst - PullRequest
0 голосов
/ 20 апреля 2011

Я не знаком с 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, вы бы написали квитанцию, как это обычно делается там?

1 Ответ

2 голосов
/ 20 апреля 2011

Нет такого метода, как findFirst.
Возможно, вы ищете find('first', array('conditions' => array(...))).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...