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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用自定义连接检索模型时,Laravel出错相关的知识,希望对你有一定的参考价值。

我有一个Model Correo,它具有动态变化的自定义连接。

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

在null上调用成员函数newCollection()

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

谢谢!

答案

您可以使用setConnection函数

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

所以基于会话(如果你没有那么多的远程连接)

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

`

另一答案

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

以上是关于使用自定义连接检索模型时,Laravel出错的主要内容,如果未能解决你的问题,请参考以下文章

相关模型 eloquent laravel 中的自定义查询

在 Laravel 中使用 MySQL 数据库连接运行多个单元测试时出错

尝试访问 Laravel 4 中的关系数据时出错

在子类模型中使用带有自定义 train_step 的 Keras ImageDataGenerator 时出错

laravel 在使用 php artisan 时从自定义存根创建模型

LinkedIn PBI 自定义数据连接器 - 计划报告刷新时出错