Laravel:如何设置多对多关系的连接?

Laravel:如何设置多对多关系的连接?,laravel,eloquent,many-to-many,pivot-table,multiple-databases,Laravel,Eloquent,Many To Many,Pivot Table,Multiple Databases,我有模型 class User extends Model { protected $connection = 'mysql'; public function areas() { return $this->belongsToMany(Area::class, 'user_areas'); } } class Area extends Model { protected $connection = 'oracle';

我有模型

class User extends Model
{
    protected $connection = 'mysql';

    public function areas()
    {
        return $this->belongsToMany(Area::class, 'user_areas');
    }
}


class Area extends Model
{    
    protected $connection = 'oracle';
}
用户_区域表是在oracle上搜索的,但这是在mysql上搜索的

如何指示数据透视表的连接


我找到了这个局部的解决方案,它已经奏效了

class User extends Model
{
    protected $connection = 'mysql'

    public function areas()
    {
        $instance = new Area;
        $instance->setConnection('mysql');
        return new BelongsToMany($instance->newQuery(), $this, 'user_areas', 'user_id', 'area_id', 'areas');
    }
}

不幸的是,这个解决方案适用于同一台服务器,我有两个来自不同服务器的连接,一个是oracle,一个是mysqlI,我链接到了一个评论,这不是问题。注释指定它不是possible@GustavoPerezMachado如果数据库位于不同的服务器上,则解决方案不起作用。你能看看吗?@AkshayVaghasiya这个解决方案到目前为止对我来说非常有效,是不同的服务器,正如你看到的oracle服务器和mysql一样,laravel的版本是5.2,但我不认为不同的厌恶是一个问题