CakePHP 2.x: действительно ли полезен флаг $ primary в Model :: afterFind ()?

CakePHP-Model::afterFind() обратный вызов выглядит так:

afterFind(array $results, boolean $primary = false)

Согласно документации:

$primary Параметр указывает, была ли текущая модель моделью, с которой был создан запрос, или же эта модель была запрошена как ассоциация. Если модель запрашивается как ассоциация, формат$results может отличаться.

OниМожно отличаются, но эксперимент показывает, что они невсегда отличаются. Насколько я могу судить,$primary параметр isn 'на самом деле все это полезно. Если оно'установлен наfalse вы можете или не можете получить плоскую структуру данных, так что вы можете или не можете оказаться с ужасом "не может использовать смещение строки как массив сообщение об ошибке.

Хотя у меня нетЯ еще не пробовал, но в основе документации лежало игнорирование$primary отметьте все вместе и просто проверьте данные:

public function afterFind($results, $primary = false) {
  if (array_key_exists(0, $results) {
    // operate on $results[0]['User']['fieldname']
  } else {
    // operate on $results['fieldname']
  }
  return $results;
}

Это хакерское и я неМне это нравится, но, вероятно, это будет более полезным, чем.$primary

Явно изложены мои вопросы:

Что$primary флаг на самом деле полезен для?Я прав, что этоне полезно для определения структуры$results массив или я что то там пропустил?

Ответы на вопрос(4)

Ваш ответ на вопрос