【问题标题】:laravel error "strtolower() expects parameter 1 to be string"?laravel 错误“strtolower() 期望参数 1 是字符串”?
【发布时间】:2017-05-10 19:54:01
【问题描述】:

我正在将 json 传递给 laravel 路由,如下所示,我正在运行这个查询 sql 视图。

{"columns":["fname","lname","mobile"], "offset":"1", "limit":"25", "订单":[["fname","asc"],["lname","asc"]], "过滤器":[["gender","=","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;
}

我哪里出错了?

【问题讨论】:

  • 我认为这个错误在其他地方。你能检查一下文件名和行号吗
  • 在哪一行抛出了异常?
  • 错误出现在 grammer.php 中,它是框架的一部分。 “Grammar.php 第 58 行中的 ErrorException:strtolower() 期望参数 1 为字符串,给定数组”
  • 你的哪一行代码触发了它?

标签: laravel laravel-5.3


【解决方案1】:

您将多维数组传递给orderBy,请尝试以下操作:

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

【讨论】:

  • 我们可以这样做。 where([["fname","=","sam"],["gender","=","M"]]);
  • 你是对的。但是你不能用orderBy()
猜你喜欢
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 2021-02-13
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多