Как сказал @SpawnCxy, вам нужно будет использовать опцию 'fields' => array(...)
в find
, чтобы ограничить данные, которые вы хотите получить. Если вы не хотите делать это каждый раз, когда пишете find
, вы можете добавить что-то подобное в обратный вызов вашей модели beforeFind()
, который автоматически заполнит опции fields
всеми полями, кроме поля длинного текста:
function beforeFind($query) {
if (!isset($query['fields'])) {
foreach ($this->_schema as $field => $foo) {
if ($field == 'longtextfield') {
continue;
}
$query['fields'][] = $this->alias . '.' . $field;
}
}
return $query;
}
По поводу комментария:
Это правда ... Самый простой способ в этом случае, вероятно, состоит в том, чтобы удалить поле из схемы.
unset($this->Model->_schema['longtextfield']);
Я не проверял его, но это должно помешать включению поля в запрос. Если вы хотите сделать это переключаемым для каждого запроса, вы можете переместить его в другую переменную, например $Model->_schemaInactiveFields
, и переместить ее обратно, когда это необходимо. Вы могли бы даже сделать Поведение для этого.