我在Laravel中有3个模型(用户,付款,购买)。
我想要的很简单,但我不知道如何用Laravel / Eloquent做到这一点;我会用原始SQL成功。
我想在没有太多代码的情况下购买用户。
users
表与payments
表链接,该表链接到purchases
表。结局代码看起来像
$purchases = $user->purchases()->get();
我的模特看起来像这样
所以我尝试了一个简单的
public function purchases()
{
return $this->hasManyThrough('Purchase', 'Payment');
}
但它不起作用
SQLSTATE [42S22]:找不到列:1054未知列 'on clause'中的'purchasess.payment_id'(SQL:选择
purchases
。*, 来自payments
内部加入user_id
的{{1}}。purchases
payments
。payments
=id
。purchases
其中payment_id
。payments
= 1)
此处非常简单,它会搜索user_id
。purchases
,但我的表格组织需要加入payment_id
。payment
。你怎么能告诉Laravel?还有另一种方法可以做我想要的吗?
也许我可以在原始SQL中执行此操作,但保留通过Eloquent生成的对象?我愿意接受任何解决方案^^
细节:我不能改写我的桌子。