Giriş yapmadınız.

#1 08.05.2019 08:49:25

ugurdnlr
Üye
Kayıtlı: 23.04.2019
Mesajlar: 3

Ürün detay sayfasında ürüne birden fazla resim yüklemek

Merhabalar,
Bir e-ticaret sistemi üzerinde çalışıyorum, admin panelinden ve müşteri arayüzünde resim ekleyebiliyorum ama sadece ürünün bir resmi oluyor ikinci bir resim eklemek istediğimde güncelleme yapmış oluyorum bir önceki resmi, sanırım ürün resmi için ayrı bir tablo oluşturup her ürüne ayrı bir klasör oluşturmalıyım. Mantığını bilen arkadaşlar bana yardımcı olabilirse çok sevinirim..

Çevrimdışı

#2 08.05.2019 09:02:39

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 486

Yanıt: Ürün detay sayfasında ürüne birden fazla resim yüklemek

ürün resimleri adı altında bir tablo oluşturup oraya kayıt etmeniz gerekiyor.


Mister Koder

Çevrimdışı

#3 12.06.2019 15:12:24

ugurdnlr
Üye
Kayıtlı: 23.04.2019
Mesajlar: 3

Yanıt: Ürün detay sayfasında ürüne birden fazla resim yüklemek

Mantığını anladım ama uygulamaya geçirirken sorun yaşıyorum. Biraz daha yardımcı olabilir misiniz ? smile

Çevrimdışı

#4 13.06.2019 12:05:22

kazımkazim
Üye
Kayıtlı: 02.01.2019
Mesajlar: 29

Yanıt: Ürün detay sayfasında ürüne birden fazla resim yüklemek

benim projemden örnek :

      Schema::create('projects', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title');
            $table->string('slug')->unique();
            $table->text('content');
            $table->string('location');
            $table->string('date');
            $table->string('company');
            $table->string('duration');
            $table->string('meta_title')->nullable();
            $table->text('meta_description')->nullable();
            $table->text('meta_keywords')->nullable();
            $table->integer('rank')->default(0);
            $table->boolean('status');
            $table->boolean('show_on_home');
            $table->timestamps();
        });
        Schema::create('project_images', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('image');
            $table->integer('rank')->default(0);
            $table->boolean('cover');
            $table->unsignedBigInteger('project_id');
            $table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade');
            $table->timestamps();
        });

model project ilişkiler :

    public function images()
    {
        return $this->hasMany(ProjectImage::class, 'project_id', 'id');
    }

eklerken sync ile eklemen lazım

Çevrimdışı

#5 14.06.2019 10:09:41

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 57

Yanıt: Ürün detay sayfasında ürüne birden fazla resim yüklemek

bir başka yöntem,

direk ürün tablosunda resim alanını jsonb türünden ayarlayınız.

sonra bu alana ilgili tüm resimleri json array olarak koyunuz. Böylece hem başka bir tabloda sorgu yapmanıza gerek de kalmaz.
İhtiyacınız olmadığı zaman select etmezsiniz, olduğu zaman select edersiniz.  JSON alanının nimetlerinden faydalanmak lazım.

Hatta biz json ın içinde farklı boyutlardaki resimleri de tutuyoruz. db de json sorgusu yapabiliyoruz. mesela sadece küçük resimleri seç gibi. hatta bu json alanını modelde array olarak cast ederek rahatlığınıza rahatlık da katabilirsiniz. big_smile

örnek json aşağıdaki gibi.

[
    {
        "small_image": {
            "size": 11998,
            "width": 449,
            "height": 300,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/300x300/DSC_0003.jpg"
        },
        "medium_image": {
            "size": 27410,
            "width": 748,
            "height": 500,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/500x500/DSC_0003.jpg"
        },
        "large_image": {
            "size": 56614,
            "width": 800,
            "height": 535,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/w_800/DSC_0003.jpg"
        }
    },
    {
        "small_image": {
            "size": 11998,
            "width": 449,
            "height": 300,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/300x300/DSC_0004.jpg"
        },
        "medium_image": {
            "size": 27410,
            "width": 748,
            "height": 500,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/500x500/DSC_0004.jpg"
        },
        "large_image": {
            "size": 56614,
            "width": 800,
            "height": 535,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/w_800/DSC_0004.jpg"
        }
    },
    {
        "small_image": {
            "size": 11998,
            "width": 449,
            "height": 300,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/300x300/DSC_0005.jpg"
        },
        "medium_image": {
            "size": 27410,
            "width": 748,
            "height": 500,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/500x500/DSC_0005.jpg"
        },
        "large_image": {
            "size": 56614,
            "width": 800,
            "height": 535,
            "local_url": "619ee84d-c4fd-4c15-bf4c-a4e9ee6ba88b/properties/photos/820/w_800/DSC_0005.jpg"
        }
    }
]

Son düzenleyen alihankoc (14.06.2019 10:11:39)

Çevrimdışı

Forum alt kısmı