Я получаю сообщение об ошибке:
Предупреждение (512): ошибка SQL: 1054: неизвестный столбец «Model.id» в «предложении где» [CORE \ cake \ libs \ model \ datasources \ dbo_source.php, строка 525]
$ sql = "SELECT Model
. model_id
, Model
. pic_location
, Model
. model_name
ОТ models
AS Model
ГДЕ Model
. id
= '20' LIMIT 1 "
$ error = "1054: неизвестный столбец 'Model.id' в 'предложении where'"
$ out = null
Моя модель, к сожалению, называется "Модель" из-за устаревшей базы данных, с которой я работаю. Я использовал debug и определил, что он использует primaryKey 'id' (как также показано в SQL выше), несмотря на то, что мой код модели (см. Ниже) явно установил primaryKey в значение "model_id".
Таблица базы данных - это модели с первичным ключом model_id, поэтому я могу только предположить, что система использует автомодель.
Код моей модели 'model.php':
<?php class Model extends AppModel {
var $name = 'Model';
var $primaryKey = 'model_id';
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $hasMany = array(
'Pic' => array(
'className' => 'Pic',
'foreignKey' => 'model_name',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);}?>
Я изначально создал вручную, и когда я нажал эту ошибку, я запек ее ... с идентичными результатами (за исключением того, что я не включил пустые поля в отношение hasMany).
Я временно отключил кеширование на уровне приложений и очистил кеш, но ничего не помогает. Как я могу заставить его использовать мой код модели?