我有一个带有自定义连接的Model Correo,可以改变它的颜色。
问题在于,当我想从数据库中检索结果时,Correo::on(session('conexion'))->get()
,session('conexion')具有连接名称,出现以下错误:
在null
上调用成员函数newCollection()
我可以使用这个获得结果:DB::connection(session('conexion'))->table('correos')->get()
,但我需要Model的方法,而前一个方法只返回一个通用的Collection。
谢谢!
答案 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。我不知道为什么,但它阻止我使用它。