我正在用内部联接查询的结果填充Laravel中的数据表。之后,我将生成更新按钮,这些按钮将允许我编辑所选记录。我想使用从联接查询返回的每个记录的ID作为唯一的行ID。问题是,查询返回一个对象数组,所以我不确定如何访问每个ID。
我尝试过使用foreach循环,但会生成按钮,但它们变得不可点击。
查询:
$payment = DB::table('owed_payments')
->join('payments', 'sub_id', '=', 'payments.user_id')
->join('user_profiles', 'sub_id', '=', 'user_profiles.user_id')
->select(
'owed_payments.id',
'owed_payments.sub_id',
'owed_payments.company_name',
'owed_payments.amount',
'user_profiles.first_name',
'user_profiles.last_name',
'owed_payments.status',
'owed_payments.job_date',
'owed_payments.amount_payed',
'owed_payments.date_payed',
'payments.trn_ss',
'payments.nis',
'payments.account_number',
'payments.bank_name',
'payments.bank_branch'
)
->get();
生成更新按钮的代码:
return DataTables::of($payment)
->addColumn('action', function ($payment) {
foreach ($payment as $pay) {
return '<a href="#" class="edit btn" id="' . $pay['id'] . '">Update</a>';
}
})
->rawColumns(['action'])
->make(true);
答案 0 :(得分:0)
addcolumn
将针对每一行运行,因此不需要foreach
循环。
您可以使用id
直接访问$payment->id
:
return DataTables::of($payment)
->addColumn('action', function ($payment) {
return "<a href='#' class='edit btn' id='{$payment->id}'>Update</a>";
})
->rawColumns(['action'])
->make(true);