رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از جدول واسط orderproducts (حل شد)
#1
سلام توی جدول orderproducts یک فیلد quantity داریم که تعداد محصول خریداری شدست موقع نمایش با relations نمیشه بهش دسترسی داشته باشیم؟
پاسخ
تشکر شده توسط:
#2
چرا میتونید. کافیه Relation مربوط به جدول واسط رو دستی به مدلتون اضافه کنید. هم به مدل Orders و هم به مدل Products باید بصورت دستی ریلیشن Orderproducts رو از نوع HAS_MANY اضافه کنید. در حالت عادی و با Gii چون این جدول بعنوان واسطه ارتباط N به N بین سفارشها و محصولات عمل میکنه، ریلیشن براش ساخته نمیشه.
پاسخ
تشکر شده توسط: hamid
#3
توی مدل Orderproducts باید نوشته بشه یا توی Orders و Products ؟
پاسخ
تشکر شده توسط:
#4
توی اون دوتای اصلی.
پاسخ
تشکر شده توسط: hamid
#5
اینو تو هر دو تا نوشتم نمیشه
'orderproducts'=> array(self::HAS_MANY,'Orderproducts','id'),
پاسخ
تشکر شده توسط:
#6
نه دیگه، باید اینطوری بنویسید:

توی Products:
'orderproducts' => array(self::HAS_MANY, 'Orderproducts', 'product_id'),

توی Orders:
'orderproducts' => array(self::HAS_MANY, 'Orderproducts', 'order_id'),
پاسخ
تشکر شده توسط: hamid
#7
توی relationها اسم کلید خارجی رو مینویسیم. کلید اصلی که همیشه id هست خودش و ما باید کلید خارجی رو برای ارتباط معرفی کنیم.
پاسخ
تشکر شده توسط: hamid
#8
نشد.
نقل قول:Error 500
Trying to get property of non-object
پاسخ
تشکر شده توسط:
#9
توی پیام خصوصی تیم ویور بدین ببینم مشکل چیه.
پاسخ
تشکر شده توسط: hamid
#10
تشکر از لطف شما
داخل حلقه ای که شما اینو نوشتید.

<?php $op = Orderproducts::model()->findByAttributes(array('order_id' => $model->id, 'product_id' => $orderproduct->id)); ?>
                                    <p><?php echo $op->color->name; ?></p>
میشه بجاش اینو نوشت؟

<?php echo $model->orderproducts[$i]->color->name; ?>
پاسخ
تشکر شده توسط:
#11
بله اگه محصولات رو با حلقه for نمایش میدین و i$ متغیر حلقه است، میتونید انجام بدین ولی حدس میزنم نتایج اشتراه بشه. بهتره به همون شکل کار کنید.
پاسخ
تشکر شده توسط:
#12
یادم رفت بگم مشکل با تیم ویور حل شد. علت خطا این بود که orderproducts آرایه بود و مستقیماً نمیشد نمایش بدیم و باید با حلقه پیمایش میشد.
پاسخ
تشکر شده توسط: hamid
#13
i$ رو قبل از foreach تعریف کردم.چشم با حالت قبل کار میکنم.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان