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

问题描述 投票:0回答:1

我是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_methods表中加入表transactablestransactions

php mysql laravel laravel-4
1个回答
0
投票

为什么不使用雄辩之类的话>

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

在销售模型中添加关系

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

有关更多信息,请参考Laravel docs

© www.soinside.com 2019 - 2024. All rights reserved.