kabiri
5 سال پیش توسط kabiri مطرح شد
3 پاسخ

دسترسی به عکس هایی که با روش پلی مورفیک ذخیره شده اند

با سلام من با روابط پلی مورفیک مدل های پروداکت و فتو رو پر کردم. در مدل فتو:

public function Imageable()  
{  
return $this->morphTo();  
}  

و در مدل محصول:

public function photos()  
{  
return $this->;morphMany("App\Photos","imageable");  
}

و در جدول عکس ها به این صورت ذخیره کردم:

$imagePath = "/upload/images/{$year}/{$month}/{$day}";  
$filename = $photo->;store( $imagePath);  
$product->;photos()->;create(\['path'=>;$filename,'imagebleid'=>;$id, 'imagabletype' =>; Product::class\]);

حال وقتی در bladeاین کدو میزنم

@if($product->photos->;count()>; 0) >lt;img class="first-img" src="{{asset('storage/app/' . $product->;photos->;first()->;path)}}" ">;

                      @endif

میگه
Property [photos] does not exist on this collection instance.
اگه ممکنه کمکم کنید.
@hesammousavi
@ali.bayat
@hosseinshirinegad98


ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 5 سال پیش مطرح شد
0

@akabiri68
مشکل کنترولر و متدی هست که پروداکت رو به بلید ارسال کردید ، اونجا پروداکت رو dd کنید ببینید چی توشه ، باید photos رو توش ببینید
بهتره photos رو هم توی همون کنترولر اول load کنید بعد توی بلید استفاده کنید .


kabiri
@akabiri68 5 سال پیش مطرح شد
0

ممنون از راهنماییتون. وقتی return $product رو میزنم همه مشخصات رو میده ولی وقتی میزنم
return $product->photos->first()->path;
همون ارور قبل رو میده


وحید
تخصص : Fullstack
@forughi.vahid 5 سال پیش مطرح شد
1

@akabiri68
کدتون یه اشتباه کوچیک داره

return $product->photos->first()->path
return $product->photos()->first()->path

اولی photos آرایه از اینستنس ها برمیگردونه و دومی کالکشن بر میگردونه ، متد first() و ... روی کالکشن باید استفاده بشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام