ورود

View Full Version : راهنمایی در نوشتن یک relation



$ M 3 H R D A D $
شنبه 13 تیر 1394, 15:17 عصر
سلام من یک جدول دارم به نام گروه Groups
یک جدول دیگه به نام Mobilebanks
و یک جدول واسط به نام bankgroups(bank_id, group_id)
که جدول واسط مشخص میکنه که یک بانک متعلق به چه بانک هایی هست ( یا هیچی یا یکی یا چندتا )
این relation ها و تو مدل groups نوشتم :

'banks' => array(self::MANY_MANY, 'Mobilebanks', 'bankgroups(bank_id, group_id)'),

یعنی از گروه به بانک هایی که بهش متصل هست میرسم.
اینم تو مدل mobilebanks نوشتم

'groups' => array(self::MANY_MANY, 'Groups', 'bankgroups(bank_id, group_id)'),

یک جدول دیگه دارم به نام bankdata
حالا میخوام بفهمم تو یک گروه چند تا دیتا وجود داره ؟
یعنی شماره گروه و دارم.از اون در بیارم تو این گروه چند تا بانک هست و تو هر کدوم از اون بانک ها چند تا شماره هست؟

under22
شنبه 13 تیر 1394, 17:18 عصر
اگه منظورتونو درست فهمیده باشم میخواهید از یه Join به یک join دیگه برید . باید با استفاده از through از یک ریلیشن به یک ریلیشن دیگه برید به این شکل


public function relations()
{
return array(
'roles'=>array(self::HAS_MANY,'Role','group_id'),
'users'=>array(
self::HAS_MANY,'User',array('user_id'=>'id'),'through'=>'roles'
),
'comments'=>array(
self::HAS_MANY,'Comment',array('id'=>'user_id'),'through'=>'users'
),
);
}


132888

$ M 3 H R D A D $
شنبه 13 تیر 1394, 17:37 عصر
این و تو مدل کدوم جدول نوشتید ؟

under22
شنبه 13 تیر 1394, 17:54 عصر
این و تو مدل کدوم جدول نوشتید ؟
این کد یه مثال هست
این ریلیشن تو مدل group هست

under22
شنبه 13 تیر 1394, 19:04 عصر
اگه میخای بشماری تو قسمت اول آرایه باید نوعش رو STAT بزاری
برای مثال


'count_post' => array(self::STAT, 'Posts', 'topic_id')

تعداد تمام رکورد های جدول post رو میشماره .
حتی با through میتونی ازش استفاده کنی و رکورد های چند join متداخل رو بشماری