gpt4 book ai didi

PHP Laravel 错误 : Object of class stdClass could not be converted to string

转载 作者:可可西里 更新时间:2023-11-01 01:14:36 29 4
gpt4 key购买 nike

我正在使用 Laravel 为应用程序开发一项功能,我遇到了这个我无法弄清楚的奇怪错误。我有以下代码作为我的 Controller 的辅助函数,在我添加对以下函数的调用之前它工作得很好:

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 是一个 int(我想?)。当我打开我网站上的页面时,出现以下错误:

Missing argument 1 for Illuminate\Database\Query\Builder::lists()

有没有人知道可能导致此问题的原因?我最初的想法是 $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() 而不是 lists(),但是如果你调用 lists('cs.id') 那么你应该获取匹配的 cs.id 的数组。

关于PHP Laravel 错误 : Object of class stdClass could not be converted to string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603610/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com