2017-08-17 80 views
0

我有以下結構的郵政編碼區域表:Laravel 5.4搜索後區通配符

|id |post_district | search  |local_authority |gov_region |country | 
|31 |BA22   |BA22, BA2*, BA*|South Somerset |South West |England | 
|32 |BA9    |BA9, BA*  |South Somerset |South West |England | 

(所有列的類型爲字符串)。搜索列包含郵編可能的通配符變體。

我在創建函數時會傳入代碼(可能使用通配符,因此搜索)並返回所有匹配的行。

類似以下內容:

function SearchPostDistrict($code){ 
    return DB::table('postcodes_area')->where($code, is_substring($this))->get() //PSEUDO-CODE 
} 

這將是簡單的,如果我能有一個數組列類型,只是有一個where子句

->whereIn($code, 'search') 

是否有可能在laravel 5.4有一些像這樣的複雜的查詢生成器功能?

或者,我可以返回所有郵編區域(其中有2451條記錄)。然後遍歷每個檢查$ code是否是記錄搜索變量的子字符串,並自己構建一個集合,以便返回。

這會是一個性能問題嗎?這是我對Laravel知之甚少的一面。這對我有什麼影響?

解決方案: 我相信我可以用

function SearchPostDistrict($code){ 
    return DB::table('postcodes_area')->where('search', 'LIKE', '%'.$code.'%')->get(); 
} 

回答

0

您可以通過以下任何過濾查找特定的帖子:

$posts = Post::all(); //Send all posts 
$posts = Post::where('title','Post Two')->get(); //get title as mentioned 
$posts = DB::select('Select * from posts'); //If you want write query then "use DB;" at top of the Controller file 
$posts = Post::orderBy('title','desc')->take(1)->get(); // Get one post 
$posts = Post::orderBy('title','desc')->get(); 
+0

可以使用任何上述功能的獲得spesific帖子在LARAVEL –