Illuminate\Database\Query\Builder 类的对象无法转换为字符串,无法在单个查询中从两个数据库中获取数据
Posted
技术标签:
【中文标题】Illuminate\\Database\\Query\\Builder 类的对象无法转换为字符串,无法在单个查询中从两个数据库中获取数据【英文标题】:Object of class Illuminate\Database\Query\Builder could not be converted to string, unable to get data from two databases in a single queryIlluminate\Database\Query\Builder 类的对象无法转换为字符串,无法在单个查询中从两个数据库中获取数据 【发布时间】:2017-07-02 06:27:15 【问题描述】:class Report extends Eloquent
protected $connection1 = 'mysql1';
protected $table1 = 'table1';
protected $connection2 = 'mysql2';
protected $table2 = 'table2';
public function getdetails()
$mysql1_conn = DB::connection('mysql1');
$mysql2_conn = DB::connection('mysql2');
$result = $mysql1_conn->table('table1 as t1')
->$mysql2_conn->table('table2 as t2')
->ON('t1.userid' , '=' , 't2.userid')
->select('t1.id','t2.name','t1.number','t2.address')
->get();
return $result;
我收到错误消息
" Illuminate\Database\Query\Builder 类的对象无法转换为字符串"
【问题讨论】:
【参考方案1】:您不能使用两个数据库连接运行单个查询。
【讨论】:
是我的查询语法有问题还是无法从这种类型的数据对象中获取数据。 将 get() 替换为 toSql() 并查看生成的查询 类 Illuminate\Database\Query\Builder 的对象无法在第 '->$mysql2_conn->table('table2 as t2')' 行转换为字符串 此代码无效。你想达到什么目的?您将无法在一个查询中使用 2 个连接。并且 $mysql2_conn->table('table2 as t2') 返回查询生成器,因此出现错误。以上是关于Illuminate\Database\Query\Builder 类的对象无法转换为字符串,无法在单个查询中从两个数据库中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 查询错误 - 调用未定义的方法 Illuminate\Database\Query\Builder::query()
调用未定义的方法 Illuminate\Database\Query\Builder::when()
BadMethodCallException : 方法 Illuminate\Database\Query\Builder::offers 不存在
Laravel:调用未定义的方法 Illuminate\\Database\\Query\\Builder
调用未定义的方法 Illuminate\Database\Query\Builder::unique()
“使用 Laravel 调用未定义的方法 Illuminate\\Database\\Query\\Builder::users() [关闭]