Configurations
All'interno di una qualsiasi classe di configurazione, sono presenti i metodi:
Ognuno di questi svolge un ruolo specifico per la preparazione dei dati.
actions()
Questo metodo ritornerà un array con tutte le azioni che è possibile eseguire con i dati (anche filtrati) presenti nella Datatable. Al momento della generazione, sono già disponibili le seguenti Actions, con la possibilità di aggiugerne altre custom:
public function actions(): array
{
return [
ReadAction::create(),
ExportXlsxAction::create(["class" => DataTablesExport::class]),
ExportCsvAction::create(["class" => DataTablesExport::class]),
ExportHtmlAction::create(["class" => DataTablesExport::class]),
DeleteAction::create(),
...
];
}
initQuery()
Questo metodo ritornerà il Builder che permetterà poi l'utilizzo delle colonne delle tabelle coinvolte nella query nel metodo fields(). Nel caso in cui si voglia ricavare dati presenti in altre tabelle, basterà seguire la sintassi di Eloquent
usando il metodo join()
:
public function initQuery():Builder
{
return User::query()
->join("companies", "users.company_id", "=", "companies.id");
}
Attenzione: scrivere sempre in maniera dettagliata le colonne sulle quali verrà eseguita la join, seguendo la sintassi
"tabella.colonna"
prepare()
Questo metodo, nel caso in cui i dati non siano già stati ordinati dall'utente, ordinerà i dati nella maniera dichiarata:
public function prepare(DataTablesAdapter $adapter)
{
if (!$adapter->isSorted()) {
$adapter->sort("last_name");
}
// global filters
}
Parametri (in ordine) da passare al metodo sort($column, $desc, $nullForLast)
:
Parametro | Tipo | Default |
---|---|---|
$column | string | parametro richiesto |
$desc | bool | false |
$nullForLast | bool | false |
fields()
Questo metodo ritonerà un array che conterrà tutte le colonne che poi verrano visualizzate in interfaccia, all'interno del quale dovranno essere dichiarati tutte le colonne che si vogliono esporre, mediante l'utilizzo di un Field
:
public function fields(): array
{
return [
IDField::make(),
TextField::make("last_name", __("Cognome")),
];
}
Parametri (obbligatori) del metodo make($column, $label, $id)
:
Parametro | Tipo |
---|---|
$column | string |
$label | string |
Consultare la sezione dedicata per i dettagli sui
Fields
.
Proprietà aggiuntive della classe
Parametro | Tipo | Default | Descrizione |
---|---|---|---|
$with | array | [] | Risorse da precaricare per evitare il problema delle N+1 query |
$without | array | [] | Risorse da non precaricare |