آقا من یه مدل دارم با مایگریشن خب
داخلش یه فیلد با نوع استرینگ و با اسم 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'));
}
کسی راه حلی داره؟
سلام @YonesSohrabi
من دامنه ندارم با لوکال هاست هستم اخر کار دامنه رو راه میندازم.
اما فکر کنم فهمیدم مشکل کجاست!
ببینید من داخل پروژه قبلیم ، فایل ها داخل public/storage/products ذخیره می شدند.
اما داخل این پروژه جدید ، داخل C:\xampp\tmp ذخیره شدند. در واقع داره در زمپ ذخیره میشه.
اما من داخل هر دو پروژه از یک کد استفاده کردم. چطور ممکنه؟
فکر کنم متوجه شده باشید مشکل از کجاست الان!
شاید پاسخ شما همینجا باشد