动态将查询ID分配给锚ID属性

时间:2019-06-26 14:39:42

标签: laravel datatables

我正在用内部联接查询的结果填充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);

1 个答案:

答案 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);