2017-05-20 44 views
0

我想查詢我的數據庫連接到我的模型「地址」,以找到任何地址,在地址輸入字段中查找任何輸入到我的表單中。我的模型代碼是:數據庫查詢不能按預期使用laravel的雄辯命令工作

public function CheckForPrevious($verify) 

{ 
    $matches = \App\Address::where('address', 'like', '%'.$verify.'%') 

    ->get(); 

    foreach($matches as $match) 
    { 
    echo "$match"; 
    } 



} 

我的控制器代碼是:

public function show() 
    { 
     $address = new Address; 
     $check = $_POST['address']; 

     $address->CheckForPrevious($check); 

     return $address; 

    } 

任何幫助,將不勝感激

+0

你沒有使用'scope'正確的,採取的文檔HTTPS一看:// laravel .com/docs/5.4/eloquent#local-scopes –

+0

@jogesh_pi我以爲我確實使用範圍正確我有在我的模型的頂部使用的實例,我用我的方法的名稱之前的單詞範圍。我不知道我在想什麼 – watkins1179

+0

這裏是我最新的代碼:'公共函數CheckForPrevious($ verify) '{matches = \ App \ Address :: where'('address','like',' %'。$ verify。'%') ' - > get(); 'foreach($ match as $ match) '{ 'echo「$ match」; '} '}我得到一個空數組 – watkins1179

回答

1
public function show() 
{ 
    $address = new Address(); 
    $check = $_POST['address']; 

    $address->scopeCheckForPrevious($check); 

}

公共職能scopeCheckForPrevious($驗證)

{ 
     $query = App\Address::where('address', 'like', '%'.$verify.'%') 

     ->get(); 

     foreach($query as $match) 
     { 
     echo "$match"; 
     } 



    } 

使用本

+0

這不工作沒有 – watkins1179

+0

編輯工作,檢查它,現在它會 – Exprator

0

你不必前綴scope查詢範圍功能

變更

`$address->scopeCheckForPrevious($check)` 

`$address->CheckForPrevious($check)` 
+0

的回報沒有工作 – watkins1179

0

沒有必要訪問範圍
模型不必要 $query = App\Address::where('address', 'like', '%'.$verify.'%')

嘗試這樣的:

public function scopeCheckForPrevious($query, $verify) 
{ 
    return $query->where('address', 'like', '%'.$verify.'%'); 
} 

並用下面的代碼調用它:

$address = new Address; 
$check = $_POST['address']; 
dd($address->checkForPrevious($check)->get()); 
+0

有在第一Model部分兩個參數代碼和控制器中只有一個 – watkins1179