My database table columns are like below.
`id`, `parent_tenant_id`, `owner_id`, `parent_tenant_doc_1`, `parent_tenant_doc_2`, `parent_tenant_doc_3`, `tenant_1_doc_1`, `tenant_1_doc_2`, `tenant_1_doc_3`, `tenant_2_doc_1`, `tenant_2_doc_2`, `tenant_2_doc_3`, `created_at`, `updated_at`, `parent_passport_document`, `parent_residence_card_document`, `parent_driving_license_document`, `child_passport_document`, `child_residence_card_document`, `child_driving_license_document`, `tenant_id`, `parent_additional_document`, `child_additional_document`, `parent_residence_back`, `child_residence_back`, `parent_driving_licence_back`, `child_driving_licence_back`
I am using datatable like below.
public function getAllData()
{
$documents = $this->getAll();
return datatables($documents)
->addIndexColumn()
->addColumn('property', function ($document) {
if($document->tenant != null) {
return $document->tenant->property->name;
}
})
->addColumn('unit', function ($document) {
if($document->tenant != null) {
return $document->tenant->unit->unit_name;
}
})
->addColumn('tenant_name', function ($document) {
if($document->user != null) {
return $document->user->first_name.' '.$document->user->last_name;
}
})
->addColumn('doc_type', function ($document) {
if($document->parent_passport_document != null) {
return 'Passport';
}
})
->addColumn('front', function ($document) {
if($document->parent_passport_document != null) {
return '<img height="50" width="50" src="'.asset('tenant_documents/parent_tenants/passports/'. $document->parent_passport_document).'">';
}
})
->addColumn('expiry', function ($document) {
if($document->tenant != null) {
return '';
}
})
->addColumn('status', function ($document) {
if($document->tenant != null) {
return '';
}
})
->addColumn('action', function ($document) {
if($document->tenant != null) {
return '<div class="tbl-action-btns d-inline-flex">
<button type="button" class="p-1 tbl-action-btn viewdata" data-detailsurl="'.route('owner.documents.details', $document->id) . '" title="' . __('View') . '"><span class="iconify" data-icon="carbon:view-filled"></span></button>
<button type="button" class="p-1 tbl-action-btn edit" data-detailsurl="'.route('owner.documents.details', $document->id) . '" title="' . __('Edit') . '"><span class="iconify" data-icon="clarity:note-edit-solid"></span></button>
<button onclick="deleteItem(''.route('owner.documents.delete', $document->id).'', 'gassaftiesDatatable')" class="p-1 tbl-action-btn" title="' . __('Delete') . '"><span class="iconify" data-icon="ep:delete-filled"></span></button>
</div>';
}
})
->rawColumns(['front','action'])
->make(true);
}
As per Database Table structure each person has several documents in a row. I would like to show each document in a separate row of datatable.
How can I do that ?