codeigniter array('category '):类stdClass的对象无法转换为字符串

7eumitmz  于 2023-03-27  发布在  Go
关注(0)|答案(2)|浏览(123)

类stdClass的对象无法转换为字符串

public function get($id = null)
{
    $terms                  = array('id' => $id);
    $blog                   = $this->model->getBy($terms); 

    // $blog => (object) [id => 1, category_id => 3]

    $fix->id                = $blog->id;
    // $fix->category       = $this->getCategory($blog->category_id); // Not work
    $fix->cat_or_something = $this->getCategory($blog->category_id); // Work

    return $fix;

    // $fix => (object) [id => 1, cat_or_something => [name => Some Category]]
}

如果我把$fix->category换成$fix->cat_or_something,就可以了。$fix->category有点奇怪。

3hvapo4f

3hvapo4f1#

问题出在你的代码中的其他地方。你很可能试图在某个地方回显$fix-〉category,因为它包含一个对象,所以你得到了一个错误。

编辑2:

如果你在屏幕截图中查看代码的第三个版本(http://d.pr/i/4Hn7),你会看到错误发生在print_r之后,所以在将其分配给$fix-〉category之后也是如此-所以这不是问题所在
错误发生在DB_active_rec.php中。这是我的版本(2.0)中的_where()方法。所以这意味着你试图在where子句的某个地方使用$fix-〉类别...试着检查一下。

tyg4sfes

tyg4sfes2#

很抱歉没有更早地提供解决方案来解决导致我的问题的挑战。
这个问题是由两个相互关联的问题引起的:

  • 缓存问题
  • 库与当前PHP版本不兼容。这导致正在使用的PHP版本与代码中使用的库之间发生冲突。

幸运的是,通过重新安装PHP解决了这个问题,这涉及到安装和集成一个更新的兼容版本。

相关问题