راهش رو پیدا کردم
توضیح میدم تا دوستان هم استفاده کنند.
من یک تیبل دارم به اسم users
با مشخصات زیر
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`email` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`password` varchar(100) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`mobile` varchar(15) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`hospital_id` int(11) NULL DEFAULT NULL ,
`rule` varchar(20) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL DEFAULT '0' ,
`active` tinyint(4) NOT NULL DEFAULT 1 ,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_persian_ci
AUTO_INCREMENT=12
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;
و تبل دیگری به نام reports مشخصات
CREATE TABLE `reports ` (
`id` int(11) NOT NULL ,
`type` varchar(20) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`text` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`user_id` int(11) NOT NULL ,
`status` int(11) NOT NULL DEFAULT 0 ,
`sup_id` int(11) NULL DEFAULT 0 ,
`close` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_persian_ci
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;
در تیبل users تمامی کاربران که دارای گروه های مختلفی هستند نگهداری میشه
حالا در تیبل reports ما دوتا تیبل داریم که یکی user_id هست و ای مشتری و دیگری sup_id که ای دی پشتیبان هست
حالا می خواستم با یک بار واکشی نام مشتر به همراه کسی ک ساپورت انجام داده رو بدست بیارم
به صورت استاندارد کیک باید فیلد های که با جداول دیگر رابطه دارند باید اینگونه طراحی شوند tablename_filedRelastion
مشکل اینجا شد که نمیشه 2 فیلد هم نام داشته باشیم، پس راهی نیست که این 2 واکشی انجام بدیم(راه فرار)
اما تو کیک به روش زیر حل شد
در مدل reports دو ریلیشن $belongsTo تعریف کردم یکی که مربوط به جدول user بود و دیگری مجازی تعریف کردم
به این صورت
var $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id'
),
'Spp' => array(
'className' => 'User',
'foreignKey' => 'sup_id'
)
)