تالار گفتمان nCIS.ir

نسخه‌ی کامل: راهنمایی در مورد ایجاد ارتباط معکوس در جدول ها
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان...
من می خوام توی یه جدولی به جدول دوم ارتباط داشته باشم...
ارتباط به این صورته که فیلد 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


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

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

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