Laravel - strtolower() 期望参数 1 是字符串,给定对象
Posted
技术标签:
【中文标题】Laravel - strtolower() 期望参数 1 是字符串,给定对象【英文标题】:Laravel - strtolower() expects parameter 1 to be string, object given 【发布时间】: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,它还允许您在错误上显示回溯。然后你就会知道错误来自哪里。
【参考方案1】:
您不能使用闭包对查询进行分组,只能对结果集合进行分组:
...->orderBy(...)->get()->groupBy(...);
【讨论】:
以上是关于Laravel - strtolower() 期望参数 1 是字符串,给定对象的主要内容,如果未能解决你的问题,请参考以下文章
htmlspecialchars() 期望参数 1 是字符串,给定对象 - laravel