私は CakePHP 1.2 アプリケーションに取り組んでいます。結合テーブルを介して他のテーブルとのいくつかの HABTM 関係で定義されたモデル「ユーザー」があります。
私は現在、これらの HABTM テーブルの 1 つに格納されているデータに基づいてユーザー情報を見つけることを任されています。残念ながら、クエリを実行すると、テーブルが見つからないというエラーで条件が拒否されます。調べてみると、CakePHP の select ステートメントに HABTM テーブルが含まれていないようです。
私のユーザー HABTM 関係は次のとおりです。
var $hasAndBelongsToMany = array(
'Course' => array(
'className' => 'Course',
'joinTable' => 'course_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'course_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'School' => array(
'className' => 'School',
'joinTable' => 'school_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'school_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'Team' => array(
'className' => 'Team',
'joinTable' => 'team_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'team_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
エラーは次のとおりです。
SQL エラー: 1054: 'where 句' に不明な列 'School.name' があります
最後に、実行しようとしているクエリ
SELECT
`User`.`id`, `User`.`username`, `User`.`password`, `User`.`firstName`, `User`.`lastName`, `User`.`email
`, `User`.`phone`, `User`.`streetAddress`, `User`.`city`, `User`.`province`, `User`.`country`, `User
`.`postal`, `User`.`userlevel`, `User`.`modified`, `User`.`created`, `User`.`deleted`, `User`.`deleted_date
` FROM `users` AS `User` WHERE `User`.`id` = 6 AND `School`.`name` LIKE '%Test%' LIMIT 1