PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP Laravel错误:类stdClass的对象无法转换为字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在为使用Laravel的应用程序开发功能,但遇到了我无法解决的奇怪错误.我将以下代码作为控制器的辅助函数,在添加对以下函数调用之前,该函数运行良好:

protected function f($p){

    $cIds = $cs->select('cs.id')->get();

    $cs = DB::table('cs')
            ->select('cs.id')
            ->join('pucs', 'cs.id', '=', 'pucs.c_id')
            ->where('pucs.p_id', '=', (string)$p->id)
            ->whereIn('cs.id', $cIds)->lists('cs.id');
    return $cs;
}

其中pucs具有cs的外键和称为p_id的列,我只想返回p_id = $p-> id的行. $p是先前查询的结果,而$p-> id是一个整数(我认为吗?).当我在网站上打开页面时,出现以下错误

是否有人对导致此问题的原因有任何见解?我最初的想法是$p-> id是一个int并导致了问题,因此我使用(string)运算符将其强制转换为字符串,并尝试使用strval($p-> id).我没主意了.

更新:使用pluck(‘cs.id’)会给出相同的错误.我以为问题可能是(string)$p-> id,但是当我注释掉-> where(‘pucs.p_id’,’=’,(string)$p-> id)时,我仍然得到同样的问题.作为参考,我在同一帮助文件中有非常相似的代码行:

$bIds = $bs->select('bs.id')->get();
$bs = DB::table('bs')
    ->whereIn('bs.id', $bIds)->lists('bs.id');

我很确定它以前可以工作,即使我在早期代码中遇到错误时也是如此,但是现在它也不起作用.

无论如何,我这样做的原因是因为我有这些笨拙的表已与其他表连接并合并,然后从中选择了一个cs.id(或bs.id)子集,我只想要结果原始表.另外,我得到一些奇怪的错误,因为MysqL显然在按ID排序联合表时遇到问题?

解决方法:

当使用lists()时,您需要传递想要其值的键的名称.通常,您将在此处调用get()而不是list(),但是如果您调用list(‘cs.id’),则应该获取匹配的cs.id的数组.

大佬总结

以上是大佬教程为你收集整理的PHP Laravel错误:类stdClass的对象无法转换为字符串全部内容,希望文章能够帮你解决PHP Laravel错误:类stdClass的对象无法转换为字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: