• 23-10-2020, 09:18:56
    #1
    Merhaba, laravel bir sitemde urlden gelen slug'ın doğru şekli ile açılmasını istiyorum.

    Yani şöyle örnek vereyim;
    Sitemde bir ürün var veritabanında slug'ı: adidas-ayakkabi siteden siteadi.com/adidas-ayakkabi olarak yazılıdığında açılıyor diyelim. Kullanıcı siteye gelip siteadi.com/Adidas-Ayakkabi yazıpta girdiğinde yine açılıyor. Ben burada veritabanında ne şekilde yazılı ise o şekilde açılmasını istiyorum büyükse büyük küçükse küçük.

    Laravel harici sitelerde veri çektiğim yere WHERE BINARY slug= :slug gibi yazdığımda veri nasıl ise öyle sonuç geliyor tam eşleşmiyorsa 404'e düşüyor.

    Veri çektiğim fonksiyonum;

    public static function getDetailsBySlug($categorySlug, $slug)
    {
    $getDetails = Product::
    where(['slug' => $slug, 'status' => 1, 'lang_id' => session('localeID')])
    ->whereHas('productCategories.productCategory', function($query) use ($categorySlug) {
    $query->where(['slug' => $categorySlug, 'lang_id' => session('localeID')]);
    })
    ->with(['productImages', 'productFeatures', 'productFeatures.productFacets', 'productCategories', 'productCategories.productCategory', 'productComplements', 'productComplements.product', 'productComplements.product.productCategories.productCategory', 'productComplements.product.productImages', 'productComplements.product.productFeaturesNative', 'productComplements.product.productFeaturesNative.productFacets'])
    ->first();
    
    return $getDetails;
      }
    Burada nasıl bir ekleme yaparak istediğime ulaşabilirim?
  • 23-10-2020, 09:20:53
    #2
    https://laravel.com/docs/8.x/routing...on-constraints

    dökümandaki şu örneği bi denermisin

    Route::get('user/{id}/{name}', function ($id, $name) {  
      //
    })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
    bu örnek url de küçük harfi yakalamak için birde sorgu sırasındaki şu örneği denermisin

    Invite::where(DB::raw('BINARY `slug`'), $slug)->first();
  • 23-10-2020, 09:56:18
    #3
    acTiv adlı üyeden alıntı: mesajı görüntüle
    https://laravel.com/docs/8.x/routing...on-constraints

    dökümandaki şu örneği bi denermisin

    Route::get('user/{id}/{name}', function ($id, $name) {  
      //
    })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
    bu örnek url de küçük harfi yakalamak için birde sorgu sırasındaki şu örneği denermisin

    Invite::where(DB::raw('BINARY `slug`'), $slug)->first();

    Maalesef hocam isteğimi karşılamıyor bu. Sitedeki veriler büyük ve küçük harf şeklinde de var.
  • 23-10-2020, 10:22:49
    #4


    https://prnt.sc/v53iz4
    bu örnekte sorguda BINARY belirttiğinde adidas-ayakkabi büyük küçük harfe duyarlı sonuc getiriyor

    https://prnt.sc/v53k47
  • 25-10-2020, 14:33:39
    #5
    ->whereRaw('BINARY slug = ' . $slug)
    bu şekilde dener misiniz.