2015-05-04 29 views
0

我希望將$searchName的值傳遞給executeMapSearch()函數。 並在executeMapSearch()函數中運行查詢。將變量從一個函數傳遞到同一控制器中的另一個函數(laravel 5)

這是我的MainController類。 在search()函數中,我從刀片視圖獲取$name值。

class MainController extends Controller { 

    public function search() { 
     $name = Input::get('input-16'); 
     $searchName = $name . "%"; 
     //some code 
    } 

    public function executeMapSearch() { 
     $markers = DB::table('markers') 
      ->leftJoin('locations','markers.locations_id', '=', 'locations.id') 
      ->select('markers.*') 
      ->whereRaw('locations.name LIKE "'.$searchName.'"') 
      ->get(); 

     return View::make('main.results') 
      ->with('title','marks') 
      ->with('mark',$markers); 
    } 
} 

我的路線文件如下:

所有的
Route::any('main/search', 'Main\[email protected]'); 
Route::any('main/executeMapSearch', 'Main\[email protected]'); 

回答

0

首先,如果你真的需要在控制器使用search我不明白。看你的代碼,你並不需要在所有:

Route::any('main/search', 'Main\[email protected]'); 

,但你只放了一段代碼,所以我很難說。

如果你想在你的控制器運行任何功能,你可以用它一樣的,你在這種情況下,使用方法PHP類,所以,你可以使用:

->whereRaw('locations.name LIKE "'.$this->search().'"') 

,而不是

->whereRaw('locations.name LIKE "'.$searchName.'"') 

但是,如果你search方法返回的響應,你應該創建一個額外的功能,只計算searchName和兩個searchexecuteMapSearch方法使用它。

+0

public function executeMapSearch($searchname)

然後謝謝你,其實我有一個SQL查詢和$ searchName對凡在搜索子句() 。該SQL查詢的結果返回到視圖。 –

1

我在這裏錯過了什麼嗎?應該可以只設置控制器,象這樣:在search()

return $this->executeMapSearch($searchname);

相關問題