Php Laravel 5.5:将查询生成器转换为雄辩的
有没有办法将此查询生成器转换为雄辩的Php Laravel 5.5:将查询生成器转换为雄辩的,php,laravel,laravel-eloquent,laravel-5.5,laravel-query-builder,Php,Laravel,Laravel Eloquent,Laravel 5.5,Laravel Query Builder,有没有办法将此查询生成器转换为雄辩的 $transactions = DB::table('transactions') ->join('accounts', 'transactions.account_id', '=', 'accounts.id') ->select('transactions.*', 'accounts.name as account_name') ->paginate(5); 我尝试了一对多的方法。但是它需要find()函数,所
$transactions = DB::table('transactions')
->join('accounts', 'transactions.account_id', '=', 'accounts.id')
->select('transactions.*', 'accounts.name as account_name')
->paginate(5);
我尝试了一对多的方法。但是它需要
find()
函数,所以它会给我一个帐户的交易,但我需要选择所有帐户的交易。name您需要使用模型来完成这项工作
在评论中,您说过您已经定义了一对多关系(我假设它的帐户有许多事务),并且您需要使用帐户名获取所有事务,所以请执行以下操作:
Transaction::with('account')->paginate(5);
其中,科目
是关系:
public function account()
{
return $this->belongsTo(Account::class);
}
然后您将能够如下所示显示数据:
@foreach ($transactions as $transaction)
{{ $transaction->id }}
{{ $transaction->account->name }}
@endforeach
对使用关系:是的,我知道,但如何使用?:)我试过一对多。但是它需要
find()
函数。我需要选择accounts.name的所有事务我在Transaction::accountNames()中遇到此错误代码>非静态方法App\Transaction::accountNames()不应该被静态调用对不起,我的错误是,该方法应该在实例上调用,不是::但是->像这样吗<代码>$transactions=交易->账户名称()代码>我得到了这个错误:)解析错误:语法错误,意外的'->'(T_OBJECT_操作符)这很有效!这就是我要找的{{$transaction->account->name}
。非常感谢@alexey mezenin:)