2016-12-26 238 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()' –

相关问题