【问题标题】:Laravel - strtolower() expects parameter 1 to be string, object givenLaravel - strtolower() 期望参数 1 是字符串,给定对象
【发布时间】:2018-08-07 13:56:20
【问题描述】:

我正在尝试按第一个字符对标签进行分组

return $tags->select('id', 'title')
    ->orderBy('title','asc')
    ->groupBy(function($item, $key) { 
        return substr($item['title'], 1, 1); 
    })
    ->get();

但它返回此错误

strtolower() 期望参数 1 是字符串,给定对象

【问题讨论】:

  • 错误来自 Laravel 文件,还是您自己的代码?
  • 你能提供你调用strtolower的代码吗?
  • 我认为它的错误来自这部分 groupBy(function($item, $key) { return substr($item['title'], 1, 1); })
  • 我没有打电话给 strtolower
  • PHP 错误通常指定了文件和行。如果您在此处指定完整错误,这将很有用。其他建议是使用 xdebug,它还允许您在错误上显示回溯。然后你就会知道错误来自哪里。

标签: php laravel


【解决方案1】:

您不能使用闭包对查询进行分组,只能对结果集合进行分组:

...->orderBy(...)->get()->groupBy(...);

【讨论】:

    猜你喜欢
    • 2017-05-10
    • 2017-08-30
    • 2020-06-01
    • 2018-07-30
    • 2018-07-04
    • 2019-05-10
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    相关资源
    最近更新 更多