راکت

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

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

ثبت پرسش جدید

پاسخ‌ها

3
وحید
وحید
@forughi.vahid

تخصص: Fullstack

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

kabiri
kabiri
@akabiri68

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

شاید پاسخ شما همین‌جا باشد

وحید
وحید
@forughi.vahid

تخصص: Fullstack

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

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

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

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

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