使用自定义连接检索模型时,Laravel出错

时间:2018-05-27 20:29:43

标签: laravel eloquent

我有一个带有自定义连接的Model Correo,可以改变它的颜色。

问题在于,当我想从数据库中检索结果时,Correo::on(session('conexion'))->get(),session('conexion')具有连接名称,出现以下错误:

  

在null

上调用成员函数newCollection()

我可以使用这个获得结果:DB::connection(session('conexion'))->table('correos')->get(),但我需要Model的方法,而前一个方法只返回一个通用的Collection。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用setConnection功能

$correo = new Correo;
$correo->setConnection('yourConnectionName');
$data = $correo->find(1);
dd($data);

因此基于会话(如果您没有那么多远程连接)

if (session('xyz')) { 
$correo->setConnection('xyz');
} else {
$correo->setConnection('pqr');
}

`

答案 1 :(得分:0)

好吧,我解决了它,当我创建模型时,我编写了每个属性,然后创建了每个getter和setter,显然它不喜欢新的setConnection setter。我不知道为什么,但它阻止我使用它。