【发布时间】:2014-10-27 20:50:19
【问题描述】:
我有两个连接,“mysql”和“mysql2”托管在两个不同的盒子上。
在“mysql”上有一个名为“account”的表,在“mysql2”上有一个名为“payments”的表,它使用 PayPal IPN 接受付款。
我正在使用名为“Payment”的模型从“mysql2”中提取数据,“payments”上有一个名为“custom”的字段,其中包含进行 PayPal 付款的用户 ID。我想以某种方式将这两个“链接”起来,以便我可以提取付款人的用户名。
我相信 leftJoin 在这种情况下不起作用,因为它跨越两个连接,Eloquent 的关系方法会起作用吗?我试过用它们无济于事。
我的查询是这样的:
$top_donators = Payment::selectRaw('month(created_at) as month, year(created_at) as year, sum(mc_gross) as amount, custom')
->groupBy('year', 'month', 'custom')
->orderBy('amount','desc')
->get();
用户模型关系
public function payment()
{
return $this->hasMany('Payment', 'custom', 'id');
}
支付模式关系
public function user() {
return $this->belongsTo('User', 'id');
}
【问题讨论】:
-
两张表使用同一个数据库不是更可行吗?
-
可能是的;但不幸的是不可能。用户数据库是托管在功能强大的机器上的游戏的帐户,以及外部托管的网站,这是付款发生的地方。上次我们尝试在外部而不是本地主机上托管我们的网站时,它以蜗牛的速度运行:x
标签: laravel laravel-4 eloquent