Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Conexão com duas bases de dados

Pessoal, bom dia.

Eu estou testando mais de uma conexão com Laravel, eu consegui configurar o arquivo database.php com sucesso. A questão é que dentro do model, para a conexão que não é default eu tenho que usar o método estático DB::connection, passando a string de conexão, eu tentei usar o atributo protected connection dentro do model mas sem sucesso. Eu gostaria de não trabalhar com a DB::connection(). Eu estou usando o Laravel 5.5. Obrigado.

Model

    protected $connection= 'connection_2';  <- "não funciona"
    protected $table = "Perseus.erros";

    public function listar()
    {
        $erros = DB::connection('connection_2')->table('erros')->limit(5)->get();
        return $erros;
    }

database.php

'default' => env('DB_CONNECTION', 'connection_1'),

'connection_1' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST', '??????'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', '?????'),
            'username' => env('DB_USERNAME', '????'),
            'password' => env('DB_PASSWORD', '?????'),
            'charset' => 'utf8',
            'prefix' => '',
        ],

        'connection_2' => [
            'driver' => 'sqlsrv',
             'host' => env('DB_HOST', '??????'),
            'port' => env('DB_PORT', '1433'),
             'database' => env('DB_DATABASE', '?????'),
            'username' => env('DB_USERNAME', '????'),
            'password' => env('DB_PASSWORD', '?????'),
            'charset' => 'utf8',
            'prefix' => '',
        ],
1 resposta
solução!

Oi Leandro, tudo bom?

Segundo a documentação do eloquent você pode definir a conexão do seu modelo sobrescrevendo o atributo $connection:

 /**
     * The connection name for the model.
     *
     * @var string
     */
    protected $connection = 'connection-name';

Na sua classe que herda de Model =)

Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software