响应内容必须是字符串或 object 实现 __toString(), "object" given
The Response content must be a string or object implementing __toString(), "object" given
我有两个查询结果,$query1 和 $query2
$query1的内容打印如下:
{"name":"Gerencia Regional Llanos","name":"Lorem ipsum"}
$query2 是:
[{"id":1,"name":"Lorem upsum"},{"id":2,"name":"Lorem upsum"}]
当我在 blade 中打印 $query1 时,一切正常,但是当我尝试打印 $query2 时,服务器抛出以下错误:
htmlentities() expects parameter 1 to be string, object given
在blade中我用同样的方式调用它们:
{{ $query1 }}
您第一个查询的内容是一个字符串。但是你的第二个查询的内容被转换为一个数组——我猜是因为它是事物的集合而不是单一的事物。因此你不能用 {{ $x }}
打印它,因为它调用 htmlentities()
,它只想处理字符串。
您可以确保在第二个查询中也只获取一个可以转换为字符串的对象,或者您可以使用 foreach 循环打印 collection/array 中的每个项目时间.
创建如下函数
function utf8_encode_deep(&$input) {
if (is_string($input)) {
$input = utf8_encode($input);
} else if (is_array($input)) {
foreach ($input as &$value) {
self::utf8_encode_deep($value);
}
unset($value);
} else if (is_object($input)) {
$vars = array_keys(get_object_vars($input));
foreach ($vars as $var) {
self::utf8_encode_deep($input->$var);
}
}
}
尝试执行以下操作
utf8_encode_deep($query);
可以看例子解决问题。
需要以上述格式响应请求的数据。
$datas = DB::table('user_table')
->get();
// response the desired data
return response()->json(['datas' => $datas], 200);
我有两个查询结果,$query1 和 $query2
$query1的内容打印如下:
{"name":"Gerencia Regional Llanos","name":"Lorem ipsum"}
$query2 是:
[{"id":1,"name":"Lorem upsum"},{"id":2,"name":"Lorem upsum"}]
当我在 blade 中打印 $query1 时,一切正常,但是当我尝试打印 $query2 时,服务器抛出以下错误:
htmlentities() expects parameter 1 to be string, object given
在blade中我用同样的方式调用它们:
{{ $query1 }}
您第一个查询的内容是一个字符串。但是你的第二个查询的内容被转换为一个数组——我猜是因为它是事物的集合而不是单一的事物。因此你不能用 {{ $x }}
打印它,因为它调用 htmlentities()
,它只想处理字符串。
您可以确保在第二个查询中也只获取一个可以转换为字符串的对象,或者您可以使用 foreach 循环打印 collection/array 中的每个项目时间.
创建如下函数
function utf8_encode_deep(&$input) {
if (is_string($input)) {
$input = utf8_encode($input);
} else if (is_array($input)) {
foreach ($input as &$value) {
self::utf8_encode_deep($value);
}
unset($value);
} else if (is_object($input)) {
$vars = array_keys(get_object_vars($input));
foreach ($vars as $var) {
self::utf8_encode_deep($input->$var);
}
}
}
尝试执行以下操作
utf8_encode_deep($query);
可以看例子解决问题。 需要以上述格式响应请求的数据。
$datas = DB::table('user_table')
->get();
// response the desired data
return response()->json(['datas' => $datas], 200);