我收到此错误:类 Illuminate\Database\Eloquent\Builder 的对象无法在 laravel ORM 中转换为字符串

Posted

技术标签:

【中文标题】我收到此错误:类 Illuminate\\Database\\Eloquent\\Builder 的对象无法在 laravel ORM 中转换为字符串【英文标题】:i get this error: Object of class Illuminate\Database\Eloquent\Builder could not be converted to string in laravel ORM我收到此错误:类 Illuminate\Database\Eloquent\Builder 的对象无法在 laravel ORM 中转换为字符串 【发布时间】:2018-06-16 10:37:47 【问题描述】:

我收到此错误:

Illuminate\Database\Eloquent\Builder 类的对象无法转换为字符串

当我运行这段代码时:

 public function index()

    save_resource_url();
    //$items = News::with(['category', 'photos'])->get(); 

    $items = Solicitud::rightjoin(News::with(['category', 'photos']),'news.id','=','solicitud.event_id')->count('*','event_id','as','total')->get();
    return $this->view('news_events.index', compact('items'));

我原来的sql查询

SELECT *,count(event_id) as total FROM solicitud RIGHT JOIN news ON news.id = solicitud.event_id group by title;

【问题讨论】:

【参考方案1】:

解决:

我的原始代码

 public function index()

    save_resource_url();
    $items = News::with(['category', 'photos'])->get();         
    return $this->view('news_events.index', compact('items'));

更改我的 sql 查询:

SELECT *,count(event_id) as total FROM solicitud RIGHT JOIN news ON news.id = solicitud.event_id group by title;

这个查询产生了重复的列

为此:

select news.*,count(event_id) as total from news left join solicitud on solicitud.event_id = news.id group by news.id;

此查询仅显示 users 表的列以及与“request”表相关的“total”表

在我的代码中转换为雄辩的

 public function index()

    save_resource_url();
    $items = News::with(['category', 'photos'])->leftjoin('solicitud','solicitud.event_id','=','news.id')->groupBy('news.id')->select('news.*',DB::raw('count(event_id) as total'))->get();
    return $this->view('news_events.index', compact('items'));

【讨论】:

【参考方案2】:

您得到的错误是因为您将Builder 作为第一个参数News::with(['category', 'photos'])。它应该只是字符串(表名),如'news'

Click here to read more

所以查询应该

$items = Solicitud::rightjoin( 'news','news.id','=','solicitud.event_id')->count('*','event_id','as','total')->get();

【讨论】:

以上是关于我收到此错误:类 Illuminate\Database\Eloquent\Builder 的对象无法在 laravel ORM 中转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

运行我的颤振项目时收到此错误消息

C++ 错误:未在此范围内声明类/对象

JavaScript 类列表选择器错误

为啥我收到此错误,responseSerializationFailed?

Android错误膨胀类android.support.constraint.ConstraintLayout

运行.kv文件时,我不断收到语法错误。我该如何解决? [关闭]