Laravel雄辩地在左联接中联接多个表



我是laravel的新手。我试图在左边的联接中联接多个表,但是我面临语法错误,我不知道哪里出了问题。

代码

$query = DB::table('sales')
->leftjoin('transactions AS trx', function ($join) {
$join->on('payment_methods AS payment', 'payment.id', '=', 'trx.payment_method_id');
$join->on('transactables', 'transactables.transaction_id', '=', 'transactions.id')
->whereNull('transactions.deleted_at')
->whereNull('transactables.deleted_at')
->where('transactable_type', '=', 'Sale')
->where('transactable_id', '=', 'sales.id');
})

错误符合

Syntax error near '`payment_methods` as `payment` payment.id `=` and `transactions`.`deleted_at` is'

正如上面的代码所示。我正在尝试将表payment_methodstransactables联接到transactions表中。

为什么不使用类似Eloquent的

$sales = Sale::with('transactions')->get();

在销售模型中添加关系

public function transactions()
{
return $this->morphToMany('AppTransaction', 'transactable');
}

欲了解更多信息,请参阅Laravel文档

相关内容

  • 没有找到相关文章

最新更新