با سلام من با استفاده از پلی مورفیک یک به چند، برای یک محصول چند عکس ذخیره کردم .
public function store(ProductRequest $request)
{
$product=product::create($request->all());
$id=$product->id;
foreach ($request->photos as $photo) {
$year = Carbon::now()->year;
$month = Carbon::now()->month;
$day = Carbon::now()->day;
$imagePath = "/upload/images/{$year}/{$month}/{$day}";
$path = $photo->store( $imagePath, 'public');
$product->photos()->create(['path'=>$path,'imageble_id'=>$id, 'imagable_type' => Product::class]);
}
$request->session()->flash('success', 'محصول با موفقیت ثبت شد!');
return redirect(route('Products.index'));
}
این عکس ها در مسیر
storage/app/public/upload/images/....
ذخیره شده اند.
حال برای نمایش این عکس ها در ویو چه کدی رو باید بزنم؟
@akabiri68
سلام.
ابتده دستور زیر رو اجرا می کنید:
php artisan storage:link
بعد می تونید با استفاده از آدرسی که ساختارش مشابه زیر هستش، عکس ها رو نمایش بدید.
http://localhost:8000/storage/upload/images/2020/06/23/image.jpg
خوب مهندس پس تکلیف app/public چی میشه؟ چرا تو مسیر دستیابی به تصویر نوشته نشدن؟
بعد قبلا شما گفتین لاراول مسیر storage رو برای ذخیره تصویر و فایل آپلودی قانونی کرده، پس چرا آقای موسوی و بعضی برنامه نویسان بزرگ مثل مدیر سایت پارس کلیک فایل های آپلودی رو تو مسیر public پروژه ذخیره می کنن؟
@mohsenbostan
@akabiri68
اون دایکتوری یک دایرکتوی خصوصی حساب میشه و نباید کسی بهش دسترسی داشته باشه!
با اون دستوری که گفتم یک نسخه از storage/app/public رو در public/storage/public میسازه( در واقع لینک می کنه)
ممنون از توضیحاتتون . بله من لینکی که گفتین رو اجرا کردم و توی publicهم عکس رو ذخیره میکنه. یعنی شما نظرتون اینه که از پلی مورفیک توی آدرس دهی استفاده نکنم؟ اخه من اینجوری توی ویو آدرس داده بودم ولی اجرا نمیکنه
<img src="{{asset('storage/app/public/' . $product->photos->first()->path)}}" alt="HTML ">
@mohsenbostan
@akabiri68
خب اشتباه آدرس رو دادید!
<img src="{{asset('storage/' . $product->photos->first()->path)}}" alt="HTML ">
به این صورت تغییر بدید.
@akabiri68
اگر کد بالا هم کار نکرد، به صورت زیر تغییر بدید:
<img src="{{asset($product->photos->first()->path)}}" alt="HTML ">
هردو تاشو تست کردم ولی نشون نمیده عکسو. ویو من توی پوشهhome هست. میتونه مشکل از اون باشه؟
من تازه دارم لاراول یاد میگیرم و الان نزدیک دوهفته اس درگیرشم. ممنون میشم کمکم کنید.
@mohsenbostan
@akabiri68
فرقی نداره ویو کجاست.
کد زیر رو قبل از تگ img قرار بدید و خروجی رو بفرستید:
{{ dd($product->photos->first()->path); }}
من از شما یه سوالی دارم. شما در همین گفتگو اشاره کردید که من دو هفتست درگیر لاراول شدم و تازه دارم لاراول رو یاد می گیرم. بعد شما رفتین یه دوره خیلی پیشرفته پیاده سازی یک سایت با لاراولو درگیرش شدینو رو اون دارین کا میکنین. باید به شما بگم این جور مشکلاتی که شما دارین بخاطر این میتونه باشه که بیس و پایه گذاری شما در لاراول ضعیفه شما اول باید دوره مقدماتی لاراولو میدیدین و باهاش چند تا پروژه میزدین بعد به این پکیج پیشرفته می رسیدین. این مسئله آپلود مال دوره مقدماتی هست و شما اینو باید اونجا یاد میگرفتین دوست عزیز. در این دوره البته من تهیش نکردم فکر نکنم آقای موسوی بخوان روش آپلود فایل که یه کار پیش پا در لاراول اوفتادستون آموزش بدن. شما باید ابتدا بیس لاراولی تو قوی کنی بعد این پروژه رو کلید بزنی.@akabiri68
با سلام. من گفتم دوهفته اس درگیر نمایش عکس هستم .من در پروژه قبلیم هم همین کد رو اجرا کردم و جواب میداد. الان نمیدونم مشکل از کجاست. من یک ساله که دارم لاراول یاد میگیرم و 8ماه کلاس حضوری رفتم و هردوتا دوره آقای موسوی هم خریداری کردم. ولی ایشون آپلود عکس رو با پلی مورفیک نگفتن ولی من با پلی مورفیک پیاده کردم. @hosseinshirinegad98
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟