راکت
محمد
محمد
توسط محمد مطرح شد
حل
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}}')"

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

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


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

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


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

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


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

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

upload/img/image.png
image.png

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

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

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

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


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

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


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

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