2016-10-01 15 views
1

私はカテゴリでSlugで検索しています。最後にダッシュ&の数字を含む検索結果を除外したいと思います(powerbank-1など)。 マイクエリ:LaravelでEloquent ORMを使って 'not regexp'を使ってデータベースを検索する

$categories = Category::where('active_products', ">", 0) 
    ->where('slug', 'LIKE', "%$search_term%") 
    ->where('slug', 'not regexp', "/$search_term-[0-9]/") 
    ->get(); 

私の結果はまだスラグ中で-1 & -2終末不要な結果が含まれています。

{ 
    "query": "powerbank", 
    "categories": [ 
    { 
    "id": 18, 
    "parent_id": 17, 
    "lft": 108, 
    "rgt": 109, 
    "depth": 1, 
    "name": "Powerbank", 
    "description": null, 
    "description2": null, 
    "products": 43, 
    "active_products": 38, 
    "created_at": "2016-08-25 20:51:42", 
    "updated_at": "2016-09-20 06:06:06", 
    "slug": "powerbank" 
    }, 
    { 
    "id": 20, 
    "parent_id": 19, 
    "lft": 124, 
    "rgt": 125, 
    "depth": 1, 
    "name": "Powerbank", 
    "description": null, 
    "description2": null, 
    "products": 43, 
    "active_products": 38, 
    "created_at": "2016-08-25 20:51:43", 
    "updated_at": "2016-09-20 06:06:06", 
    "slug": "powerbank-1" 
    }, 
    { 
    "id": 22, 
    "parent_id": 21, 
    "lft": 136, 
    "rgt": 137, 
    "depth": 1, 
    "name": "Powerbank", 
    "description": null, 
    "description2": null, 
    "products": 43, 
    "active_products": 38, 
    "created_at": "2016-08-25 20:51:43", 
    "updated_at": "2016-09-20 06:06:06", 
    "slug": "powerbank-2" 
    }] 
} 

答えて

5

見つかり働いていなかった理由問題:正規表現からスラッシュを削除し、ITTてますbe:

->where('slug', 'not regexp', "$search_term-[0-9]")

関連する問題