Tôi đang làm việc trên ứng dụng CakePHP 1.2. Tôi có một mô hình "Người dùng" được định nghĩa với một vài mối quan hệ HABTM với các bảng khác thông qua một bảng kết nối.Làm cách nào để truy vấn dữ liệu trong CakePHP bằng các mối quan hệ HABTM?
Tôi hiện được giao nhiệm vụ tìm thông tin Người dùng dựa trên dữ liệu được lưu trữ trong một trong các bảng HABTM này. Thật không may, khi truy vấn thực hiện, điều kiện của tôi bị từ chối với một lỗi về một bảng bị thiếu. Sau khi kiểm tra có vẻ như CakePHP không bao gồm bất kỳ bảng HABTM nào trong câu lệnh chọn.
mối quan hệ HABTM tài khoản của tôi là như sau:
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' => ''
)
);
Lỗi này là:
SQL Error: 1054: Unknown column 'School.name' in 'where clause'
Và cuối cùng, các truy vấn nó đang cố gắng để thực hiện
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
Như tốt nhất như tôi biết điều này nên không quan trọng như Tôi đặt rõ ràng tên bảng và mô hình chung. –