رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
راهنمایی در مورد ایجاد ارتباط معکوس در جدول ها
#1
Question 
سلام دوستان...
من می خوام توی یه جدولی به جدول دوم ارتباط داشته باشم...
ارتباط به این صورته که فیلد bc_id در جدول دوم از فیلد id در جدول اول مقدار می گیره...

حالا می خوام از جدول اول به جدول دوم دسترسی داشته باشم...

کدی که براش نوشتم به صورته زیر هست (کد رو در مدل جدول اول نوشتم):


public function getImage(){
    return $this->hasMany(BcImages::className(), ['bc_id' => 'id']);
}

و در فایل ویو هم به صورت زیر ازتش استفاده می کنم:


<?= $value->image->logo_image?>


اما ارور می ده که :

نقل قول:
PHP Notice – yiibaseErrorException
Trying to get property of non-object


چیکارش کنم اینو؟؟

پیشاپیش ممنون از همه عزیزان
پاسخ
تشکر شده توسط:
#2
وقتی hasMany میگذارین خروجی میشه آرایه. باید اگه طرف مقابل یه دونه دارین، اینطرف hasOne بگذارین. درمقابل باید در سمتی از ارتباط 1 به n که یکی وجود داره (و در سمت مقابل چند مقدار متناظر براش هست) hasMany استفاده کنید. برای مثال توی ارتباط بین مدل Users و Posts توی مدل Users از hasMany استفاده میکنیم (چون یک کاربر چند پست داره) ولی توی مدل Posts از hasOne استفاده میشه چون هر پست فقط یک کاربر داره.
پاسخ
تشکر شده توسط:
#3
ممنون از پاسخی که دادین Heart ...اما پاسخی که دادین فقط یه خورده اطلاعاتمو زیاد کرد ولی مشکلم حل نشد...
کدم رو که در بالا گذاشتم باید چیکار کنم که کار کنه؟؟ Huh
پاسخ
تشکر شده توسط:
#4
گفتم که باید بجای hasMany از hasOne استفاده کنید. وقتی خروجی متدتون hasMany باشه، جوابی که ازش میگیرین یه آرایه است که باید با حلقه پیمایش کنید. برای مثال:
<?php foreach($value->image as $image) {
    echo $image->logo_image;
}

اگه فقط یه عکس دارین باید hasOne باشه. یکبار دیگه توضیحاتی که دادم رو با دقت بیشتر بخونید.
پاسخ
تشکر شده توسط: abdollah110110




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