محمد
3 سال پیش توسط محمد مطرح شد
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="{{ $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}}')"

ثبت پرسش جدید
سینا خاقانی
تخصص : توسعه دهنده بک‌اند
@sina.it91 3 سال پیش مطرح شد
1

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


محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

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


سینا خاقانی
تخصص : توسعه دهنده بک‌اند
@sina.it91 3 سال پیش مطرح شد
1

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


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 3 سال پیش مطرح شد
2

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

upload/img/image.png
image.png

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

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

محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
1

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


محمد
تخصص : Laravel
@mprogrammer7 3 سال پیش مطرح شد
2

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


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

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