【发布时间】:2015-02-09 19:18:06
【问题描述】:
我正在尝试使用 Laravel Eloquent ORM 在两个不同的连接上建立简单的一对一关系。
假设我愿意:
MyModel::on('secondary_connection')->get()
效果很好。
当我这样做时:
MyModel::on('secondary_connection')->with('AnotherModel')->get();
我收到一个错误,因为 eloquent 正在对默认连接(而不是“secondary_connection”)执行 AnotherModel SELECT 语句。
我找不到解决此问题的方法。
我的模型定义明确,因为我可以将它们加入我的默认连接。
想法?
【问题讨论】:
-
你在使用存储库吗???
-
我对这个概念不是很熟悉,但我会说不。每个模型都扩展了 Eloquent 类。
-
试试
->with(['AnotherModel' => function($q){ $q->on('secondary_connection'); }]) -
@lukasgeiter
Builder是使用连接作为依赖创建的,并且无法在已经实例化的对象上更改它。这就是在急切加载期间发生的情况,因此无法即时实现。 -
@JarekTkaczyk 是的,这很有道理......
标签: php laravel eloquent loading eager