Динамически назначать идентификатор запроса для атрибута идентификатора привязки - PullRequest
0 голосов
/ 26 июня 2019

Я заполняю DataTable в Laravel результатами запроса Inner Join.После этого я генерирую кнопки обновления, которые позволят мне редактировать выбранную запись.Я хотел бы использовать идентификатор каждой записи, возвращаемой из запроса на присоединение, чтобы быть уникальным идентификатором строки.Проблема в том, что запрос возвращает массив объектов, поэтому я не уверен, как получить доступ к каждому идентификатору.

Я пытался использовать цикл 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 голосов
/ 26 июня 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...