انجمن پشتیبانی فارسی فریم ورک کیک پی اچ پی - cakephp

نسخه‌ی کامل: تبدیل کوئری SQL به کیک
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام
می خوام این کوئری SQL رو به کیک تبدیل کنم.
کمک کنید
کد:
SELECT entry_id,sys_date,entry_date,exit_time,company,person,ent_entry.confirmer as confirmer_username,ent_entry.fin_confirmer as fin_confirmer_username,work,es.name as site,a.name as liable,c.name as confirmer,`confirmer_date`,b.name as fin_confirmer, fin_confirmer_date
FROM ent_entry
LEFT JOIN ent_site es ON ent_entry.site=es.site_id
LEFT JOIN user a ON ent_entry.liable=a.username
LEFT JOIN user b ON ent_entry.fin_confirmer=b.username
LEFT JOIN user c ON ent_entry.confirmer=c.username
WHERE ent_entry.entry_date < DATE_ADD(CURDATE(), INTERVAL 1 DAY) && ent_entry.entry_date >= CURDATE() && (ent_entry.exit_time >= CURTIME() || ent_entry.confirmer IS NOT NULL)
ORDER BY entry_date desc

که ساختار هر کدوم از جدولا به شکل زیر هست:
جدول user
کد:
CREATE TABLE IF NOT EXISTS `user` (
 `username` varchar(5) NOT NULL,
//...
 `name` varchar(128) NOT NULL,
 PRIMARY KEY (`username`)
)

جدول ent_entry
کد:
CREATE TABLE IF NOT EXISTS `ent_entry` (
 `entry_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `sys_date` datetime NOT NULL,
 `entry_date` datetime NOT NULL,
 `exit_time` time NOT NULL,
 `company` varchar(64) NOT NULL,
 `person` varchar(128) NOT NULL,
 `work` varchar(256) NOT NULL,
 `site` int(11) unsigned NOT NULL,
 `liable` varchar(5) NOT NULL,
 `confirmer` varchar(5) DEFAULT NULL,
 `confirmer_date` datetime DEFAULT NULL,
 `fin_confirmer` varchar(5) DEFAULT NULL,
 `fin_confirmer_date` datetime DEFAULT NULL,
 PRIMARY KEY (`entry_id`),
 KEY `site` (`site`),
 KEY `liable` (`liable`),
 KEY `confirmer` (`confirmer`)
)

جدول ent_site
کد:
CREATE TABLE IF NOT EXISTS `ent_site` (
 `site_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(64) NOT NULL,
 PRIMARY KEY (`site_id`)
)
اینها جدول ها مدل دارند یا فقط همین کویری رو نیاز دارید؟ اگر همین کويری هست. میتونید ویو بسازید و به عنوان یک تیبل فراخوانی کنید.

یا می تونید از Query Builder  استفاده کنید. 
این صفحه رو بخونید مشکلتون رو میتونید به راحتی حل کنید.

کد:
http://book.cakephp.org/3.0/en/orm/query-builder.html
ممنون بسیار عالی موفق باشید Wink