با سلام. بنده چند جدول دارم که با یک جدول دارای ارتباط چند به چند است. در این بین یک جدول واسط برای قراردادن id های مرتبط باهم به نام form_send را در نظر گفته ام. فیلد های این جداول به این صورت است:[/rtl]
[rtl]که جدول فرم با جدول اینترنت از طریق جدول form_send با هم دارای ارتباط چند به چند هستند. جدول form_send دارای فیلدی به نام send_type است که دارای سه مقدار ۱و۲و۳ که هر کدام تعیین کننده نوع ارسال که شامل اینترنت، آندروید و ایمیل که هرکدام دارای جدول جاگانه ای می باشد، میشه.
در نهایت سوال:
ارتباط این جداول با توجه به فیلد نوع ارسال و به صورت چند به چند چطوری باید پیاده سازی بشه؟[/rtl]
[right]در مدل یکی از دو جدول اصلی یک متد بساز تا مقادیر لازم را وارد جدول واسط کنن، این کارو بهتره با نوشتن کوئری به صورت دستی انجام بدی.
برای بروز کردن جدول واسط هم نیاز خواهی داشت ابتدا همه رابطه های مورد نظر را پاک کنی و دوباره مقادیرو انزرت کنی
احتمالا بهتره این متد را در مدل
forms
بنویسی تا وقتی یک رکورد ازش تولید میشه یک رابطه هم در جدول واسط با
internet
کنه
متد ایجاد رابطه ات شبیه اینه[/right]
public function assignInternet($send_Id, $sendType)
{
$command = Yii::app()->db->createCommand();
$command->insert('form_send', array(
'sendType'=>$sendType,
'send_id'=>$send_Id,
'form_id'=>$this->id,
));
}
[right]در کنترلر
formsController
هم شبیه این میتونی بنویسی[/right]
public function actionCreate()
{
$model=new forms;
if(isset($_POST['Forms']))
{
$model->attributes=$_POST['Forms'];
//load internet model here
if($model->save())
{
$model->assignInternet($internetModel->id,$this->getSendTypeOption(email));