I CakePHP (1.3) kullanarak bir proje yazmaya başladım ve zor sorgulama CakePHP stilini kullanarak sonuçları döndürmek için bulma yaşıyorum.
Proje, bir sorun izci. Şimdiye kadar sadece aşağıdaki tabloları var - 'kullanıcı', 'proje' ve link table 'projects_users' herhangi bir kullanıcı bir veya daha fazla proje ile ilişkili olabilir çünkü. Projeler masaya bağlı bir 'statü' tablosu vardır.
Ben modellerinde dernekler kurmuşlardır.
Ben proje adı, günlüğe göre filtre projenin durumunu gösteren bu giriş için bir özet sayfasına dönmek için çalışıyorum user_id
. SQL'de bu yaptım sonra ben aşağıdaki gibi bir şey yapmak istiyorum.
SELECT
`statuses`.name,
`projects`.name
FROM
`statuses`
INNER JOIN `projects` ON (`statuses`.id = `projects`.status_id)
INNER JOIN `projects_users` ON (`projects`.id = `projects_users`.project_id)
INNER JOIN `users` ON (`projects_users`.user_id = `users`.id)
WHERE
`users`.id = 1
$this->Project->find('all'))
döner all projeleri, durum bilgilerini ve kullanıcı detayları.
Array
(
[0] => Array
(
[Project] => Array
(
[id] => 1
[name] => Project 1
[status_id] => 2
[date_created] => 0000-00-00
)
[Status] => Array
(
[id] => 2
[name] => Live
)
[User] => Array
(
[0] => Array
(
[id] => 1
[username] => d
[password] => ********************************
[role] => master
[ProjectsUser] => Array
(
[id] => 1
[project_id] => 1
[user_id] => 1
)
)
)
)
Etc..
Ben de denedim
$this->Project->find('all', array('conditions'=>array('User.id' => $this->Session->read('Auth.User.id'))))
hangi bir hata döndürür:
Bilinmeyen sütun 'User.id' where yan tümcesi '
Ben çalışırsanız
$this->Project->User->find('all', array('conditions'=>array('User.id' => $this->Session->read('Auth.User.id'))))
doğru user_id ile ilgili tüm projeler verir, ama şimdi artık sadece id, durumunun değerini iade ediyorum.
Array
(
[0] => Array
(
[User] => Array
(
[id] => 1
[username] => d
[password] => ********************************
[role] => master
)
[Project] => Array
(
[0] => Array
(
[id] => 1
[name] => Project 1
[status_id] => 2
[date_created] => 0000-00-00
[ProjectsUser] => Array
(
[id] => 1
[project_id] => 1
[user_id] => 1
)
)
[1] => Array
(
[id] => 3
[name] => Project 3
[status_id] => 1
[date_created] => 0000-00-00
[ProjectsUser] => Array
(
[id] => 2
[project_id] => 3
[user_id] => 1
)
)
)
)
)
Kolayca ben 'CakePHP'nin' bir şekilde sonra ben ne dönmek için bir yolu var mı? Ben burada belirgin bir şey eksik eminim.