آقا من یه مدل دارم با مایگریشن خب
داخلش یه فیلد با نوع استرینگ و با اسم image.
کنترلر رو ساختم از نوع ریسورس و ایجاد میشن درواقع اسم مدلم PicAlbum هست.
ساخته میشن اما داخل لیست رکورد ها به بنده خود عکس رو نشون نمیده یعنی ادرسش رو داره یعنی میدونه داخل public/storage/picAlbums هست اما بازم نمیاره!
اینم کد ساخت رکورد :
public function store(Request $request, PicAlbum $picAlbum)
{
$request->validate([
'title' => 'required|min:10',
'description' => 'required|min:20',
'image' => 'required'
]);
// Image
if ($request->image) {
$image = $request->image;
$path = time() . $image->getClientOriginalName();
$path = str_replace(' ', '-', $path);
$image->move('storage/picAlbums/', $path);
$path = 'storage/picAlbums/' . $path;
}
$picAlbum->create($request->all());
$picAlbums = PicAlbum::all();
$picAlbum->update([
'image' => $path
]);
toast()->success('آلبوم جدید با موفقیت ثبت شد');
return redirect(route('picAlbums.index'));
}
میتونید کد های ویو ی بنده هم مشاهده بفرمایید :
@foreach($picAlbums as $picAlbum)
<li style="background-color: #1b263b;">
<a data-bs-toggle="collapse" class="collapse" style="color: #BE6705;"
data-bs-target="#accordion-list-{{ $picAlbum->id }}"><span>{{ $picAlbum->id }}</span> {{ $picAlbum->title }}
<i class="bx bx-chevron-down icon-show"></i><i
class="bx bx-chevron-up icon-close"></i></a>
<div id="accordion-list-{{ $picAlbum->id }}" class="collapse show"
data-bs-parent=".accordion-list">
<div id="carouselExampleCaptions" class="carousel slide"
data-bs-ride="false">
<div class="carousel-inner">
<div class="carousel-item active">
<br><br>
<img src="{{ $picAlbum->path }}" class="d-block w-100"
alt="{{ $picAlbum->title }}">
<div class="carousel-caption d-none d-md-block">
<p>{{ $picAlbum->description }}</p>
</div>
</div>
<button class="carousel-control-prev" type="button"
data-bs-target="#carouselExampleCaptions"
data-bs-slide="prev">
<span class="carousel-control-prev-icon"
aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button"
data-bs-target="#carouselExampleCaptions"
data-bs-slide="next">
<span class="carousel-control-next-icon"
aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</li>
@endforeach
اینم تابعی که داخلش رکورد هارو نمایش میدم :
public function index()
{
$picAlbums = PicAlbum::all();
return view('admin.picAlbum.index', compact('picAlbums'));
}
کسی راه حلی داره؟
سلام لاین 14 ویو رو به کد زیر تبدیل کن
img src="{{ url($picAlbum->image) }}
شما خودتون تو لاین 19 آدرس تصویر رو به image ارسال کردین بعد توی ویو با اسم path صداش زدین
سلام لاین 14 در فایل blade رو به این شکل تغییر بدید احتمالا حل مشکل حل بشه ، چون باید دامنه رو هم قبل این آدرس بذارید .
img src="{{ url($picAlbum->path) }}
سلام @YonesSohrabi
من دامنه ندارم با لوکال هاست هستم اخر کار دامنه رو راه میندازم.
اما فکر کنم فهمیدم مشکل کجاست!
ببینید من داخل پروژه قبلیم ، فایل ها داخل public/storage/products
ذخیره می شدند.
اما داخل این پروژه جدید ، داخل C:\xampp\tmp
ذخیره شدند. در واقع داره در زمپ ذخیره میشه.
اما من داخل هر دو پروژه از یک کد استفاده کردم. چطور ممکنه؟
فکر کنم متوجه شده باشید مشکل از کجاست الان!
سلام لاین 14 ویو رو به کد زیر تبدیل کن
img src="{{ url($picAlbum->image) }}
شما خودتون تو لاین 19 آدرس تصویر رو به image ارسال کردین بعد توی ویو با اسم path صداش زدین
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟