有没有办法将此查询构建器转换为eloquent?
$transactions = DB::table('transactions')
->join('accounts', 'transactions.account_id', '=', 'accounts.id')
->select('transactions.*', 'accounts.name as account_name')
->paginate(5);
我尝试了一对多。但它需要find()
函数,所以它给我一个帐户的交易,但我需要选择所有与accounts.name
答案 0 :(得分:1)
在评论中,你说你有一对多的关系定义(我假设它的账户有很多交易)你需要用账户名来获得所有交易,所以这样做:
Transaction::with('account')->paginate(5);
其中account
是关系:
public function account()
{
return $this->belongsTo(Account::class);
}
然后您将能够显示如下数据:
@foreach ($transactions as $transaction)
{{ $transaction->id }}
{{ $transaction->account->name }}
@endforeach
答案 1 :(得分:0)
你需要使用模型来做到这一点。
交易模型和帐户模型。
定义他们的关系
在事务模型中创建一个方法以检索相关的帐户名。
function accoutNames(){// blablabla}
在控制器中执行查询,类似:
交易 - > accountNames();