2016-12-26 241 views
1

我正在將json傳遞給laravel路由,如下所示,我正在運行此查詢sql視圖。laravel錯誤「strtolower()期望參數1是字符串」?

{ 「列」:[其中 「fname」, 「L-NAME」, 「移動」], 「偏移量」: 「1」, 「極限」: 「25」, 「命令」:[[「FNAME 」, 「遞增」],[ 「L-NAME」, 「遞增」]], 「過濾器」:[[ 「性別」, 「=」, 「M」]]}

而這是功能置於控制器,將要在路線

public function fetch_contacts(Request $request){ 
    if($request->header('content-type') == 'application/json' && !empty($request->header('Device')) && !empty($request->header('UID'))){ 
      $query = DB::connection('mysql_freesubs')->table("contact_view") 
       ->select($request->columns); 

       if(!empty($request->filter)) 
       $query = $query->where($request->filter); 

       if(!empty($request->offset)) 
       $query = $query->offset($request->offset); 

       if(!empty($request->limit)) 
       $query = $query->limit($request->limit); 

       if(!empty($request->order)) 
       $query = $query->orderBy($request->order); 

       $contacts = $query->get(); 
       return $contacts; 
} 

那裏叫我該怎麼錯了?

+0

我是這麼認爲的這個錯誤是在其他地方。你能否檢查文件名和行號 –

+0

在哪一行中拋出異常? –

+0

錯誤是在grammer.php這是框架的一部分。 「Grammar.php中的ErrorException異常第58行: strtolower()期望參數1是字符串,數組給出」 – SaMeEr

回答

1

你傳遞多維數組orderBy,試試這個來代替:

$query = $query->orderBy($request->order[0][0], $request->order[0][1]); 
$query = $query->orderBy($request->order[1][0], $request->order[1][1]); 
+0

但我們可以將該數組作爲過濾器。對? – SaMeEr

+0

我們可以這樣做。其中([[其中 「fname」, 「=」, 「SAM」],[ 「性別」, 「=」, 「M」]]); – SaMeEr

+0

你說得對。但是你不能'orderBy()' –

相關問題