Php Laravel在leftjoin中雄辩地连接多个表

Php Laravel在leftjoin中雄辩地连接多个表,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,我是新来的。我试图在左连接中连接多个表,但是我遇到了语法错误,我不知道哪里出错了 代码 $query = DB::table('sales') ->leftjoin('transactions AS trx', function ($join) { $join->on('payment_methods AS payment', 'payment.id', '=', 'trx.payment_method_id'); $join->on('

我是新来的。我试图在左连接中连接多个表,但是我遇到了语法错误,我不知道哪里出错了

代码

$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'

正如上面的代码所示。我正在尝试将表
付款方法
可交易项
合并到
交易
表中。

为什么不使用雄辩的like

$sales = Sale::with('transactions')->get();
在销售模型中添加关系

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

有关更多信息,请参阅

您不能在一个闭包中联接两个表。@TsaiKoga,这意味着我需要将其他两个表作为子查询?
支付方法和
可交易项
?@TsaiKoga Yes联接。或者你有什么建议吗?使用多个
leftjoin
,或者你可以通过
调用雄辩的构建器关系。