راکت
حل شده

نوع ستون تصاویر در دیتابیس لاراولی

5 پاسخ

سلام دوستان
سوالم اینه برای ذخیره تصاویر باید نوع اون را چی قرار بدیم؟
و چطور اون تصویر رو در یک تگ div که به صورت () background-image url
مقدار دهی شده بود نشون بدم؟

کد migration

    public function up()
    {
        Schema::create('sliders', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
            $table->string('title');
            $table->string('description');
            $table->binary('img');
            $table->string('btn');
            $table->string('btn_link');

        });
    }

کد کنترلر

    public function create(SliderRequest $request){ //TODO: validate from http/requests/SliderRequest
        $validated_data=$request->validated();
        Sliders::create([ // TODO: creating new slider
            'title' => $validated_data['title'],
            'description' => $validated_data['description'],
            'img' => $validated_data['img'],
            'btn' => $validated_data['btn'],
            'btn_link' => $validated_data['btn_link']
        ]);
        return back(); //TODO: redirect to back
    }

کد کنترلر صفحه اصلی که مقادیر رو میفرستم

    public function index()
    {
        $slider=Sliders::orderBy('id','desc')->get();
        return view('/pages/home', compact('slider'));
    }

کد صفحه اصلی که میخام اینجا نشون بدم

           @php
                $counter=0;
            @endphp
            @foreach($slider as $sliders)
                @php
                $class=$counter == 0 ? 'active': '';
                @endphp
            <div class="carousel-item <?= $class; ?>" style="background-image: url(''{{$sliders->img}})">
                <div class="carousel-container">
                    <div class="container">
                        <h2 class="animate__animated animate__fadeInDown">{{ $sliders->title }}</h2>
                        <p class="animate__animated animate__fadeInUp">{{ $sliders->description }}</p>
                        <a href="https://roocket.ir/{{ $sliders->btn_link }}" class="btn-get-started animate__animated animate__fadeInUp scrollto">{{ $sliders->btn }}</a>
                    </div>
                </div>
            </div>
                @php
                    $counter++;
                @endphp
            @endforeach

الان تنها موردی که نشون نمیده عکسه
قسمتی که نمیدونم چطور نمایش بدم گیر کردم اینجاست

style="background-image: url('{{$sliders->img}}')"
ثبت پرسش جدید

پاسخ‌ها

5
سینا خاقانی
سینا خاقانی
@sina.it91

تخصص: توسعه دهنده بک‌اند

بهترین پاسخ

@mrn
سلام
بهتره که نوع ستون تصاویر varchar باشه و آدرس تصاویر تو این ستون به صورت string ذخیره بشه
خود عکس رو تو دیتابیس ذخیره نکنید (خود عکس باید تو فضای هاست شما ذخیره بشه)
برای نمایش تصاویر هم میتونید آدرس عکس رو به تگ img یا به background-image بدید

محمد
محمد
@mprogrammer7

تخصص: Laravel

یک روز گذشت تعداد پیام ها زیاد شد اینو بخاطر این میگم سوالم بالا بیاد دوستان ببینن
@ali.bayat
@Rp76
@hesammousavi

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

سلام بهتره ادرس عکس رو توی دیتابیس ذخیره کنی اون هم نسبی ولی من خودم فقط اسم عکس رو فقط ذخیره میکنم
مثلا :

upload/img/image.png
image.png

و به این صورت باید استفاده کنی

<img src="{{asset("upload/image/".$slider->img)}}" alt="{{$slider->title}}">

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

با اینکه میشه عکس رو تبدیل به کد کرد و بصورت رشته متنی داخل دیتابیس ذخیره کرد ولی اصلا روش مناسب و بهینه ای نیست و همون طوری که دوستان هم اشاره کردند، روش بهتر این هست که تصویرتون رو بصورت فایل داخل storage ذخیره کنید و صرفا نام فایل یا مسیر کاملش رو داخل یک فیلد از جنس varchar ذخیره کنید.

محمد
محمد
@mprogrammer7

تخصص: Laravel

ممنونم از همتون مشکلم حل شد 🙏🙏🙏

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

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