我使用Laravel Illumb,当我使用first()方法获得单个结果时,我得到了这个错误:
响应内容必须是实现给定__toString()、对象的字符串或对象。
return DB::table('todos')->where("title","your List")->first();
如果我使用get()方法选择,它将起作用:
return DB::table('todos')->where("title","your List")->get();
你知道第一句话有什么不对吗?
@乔尔欣兹已经尽可能详细地阐述了这一点。但出于对这种行为的好奇,我在查询生成器的where子句下的Laravel文档中发现了一些有趣的东西
使用DB
Facade并调用get()
返回(StdClass)对象的集合。由于它位于Laravel的集合中,所以有一些方法可以将其底层属性转换为字符串。但是,当您直接从查询生成器访问集合中的一个项时,就会有一个纯StdClass对象,它没有实现\uu toString()
(非常确定)。
我认为同样的情况是,如果您有一个集合,并且您检索一个底层数组,比如说$collection[0]
,您将丢失Laravel集合的\u toString()
的实现,因为您已经打开了它,现在有了纯PHP数组。
这种行为正是查询生成器的开发方式。为了更好地处理查询结果,您可以返回json\u encode($query\u result)
,返回响应()-
当您执行-
/**
* Convert the collection to its string representation.
*
* @return string
*/
public function __toString()
{
return $this->toJson();
}
/**
* Get the collection of items as JSON.
*
* @param int $options
* @return string
*/
public function toJson($options = 0)
{
return json_encode($this->jsonSerialize(), $options);
}
/**
* Convert the object into something JSON serializable.
*
* @return array
*/
public function jsonSerialize()
{
return array_map(function ($value) {
if ($value instanceof JsonSerializable) {
return $value->jsonSerialize();
} elseif ($value instanceof Jsonable) {
return json_decode($value->toJson(), true);
} elseif ($value instanceof Arrayable) {
return $value->toArray();
} else {
return $value;
}
}, $this->items);
}
如您所见,它所做的一切都是将整个集合转换为json。
但是当你做
-
所以<代码>-
由于该类没有实现
\uuuToString()
方法,因此响应不知道如何处理它。相反,您会得到一个错误。
您可以通过在对象上运行
json_encode()
或返回json响应来轻松模拟相同的响应。
问题内容: 如何更改查询以免发生此错误: XML数据类型方法“ alue”必须是字符串文字 T-SQL代码: 问题答案: 对于value方法,不能以这种方式将变量串联为字符串。您需要使用。 因此,您的示例将如下所示:
本文向大家介绍PHP限制HTML内容中图片必须是本站的方法,包括了PHP限制HTML内容中图片必须是本站的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP限制HTML内容中图片必须是本站的方法。分享给大家供大家参考。具体实现方法如下: 1. PHP代码如下: 2. 测试HTML代码: 3. 运行结果: 希望本文所述对大家的php程序设计有所帮助。
运行此代码时 我得到这个错误 read_bikeins=pdf。PdfFileReader(bikeins)回溯(最近一次呼叫最后一次): 文件“”,第1行,以read\u bikeins=pdf格式。PdfFileReader(比基恩) 文件“C:\Users\Naveen Raj\Anaconda3\lib\site packages\PyPDF2\pdf.py”,第1084行,在init s
编辑:我已经不在这个地方工作了,我们还是切换到了Node.js,所以我无法验证是否有人的答案是正确的。请投票关闭(只需要再多一个)。 在Raspberry Pi上运行的程序是用Python编写的,我使用方法将数据发送到服务器。 我在系统的早期部署中也注意到了这种行为,它使用Android设备来发送数据。所以我不认为客户有什么问题... 我对服务器进行了多次测试,尤其是在添加新特性时,以前从未遇到过
看起来它工作得很好,但我想知道我是否必须确保新代码需要线程安全?这里有什么意见吗?抱歉用了假名字,提前致谢。
本文向大家介绍Ajax获取响应内容长度的方法,包括了Ajax获取响应内容长度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Ajax获取响应内容长度的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Ajax程序设计有所帮助。