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