Skip to content

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:

php
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():

php
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:

php
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):

ParametroTipoDefault
$columnstringparametro richiesto
$descboolfalse
$nullForLastboolfalse

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:

php
public function fields(): array
{
    return [
        IDField::make(),
        TextField::make("last_name", __("Cognome")),
    ];
}

Parametri (obbligatori) del metodo make($column, $label, $id):

ParametroTipo
$columnstring
$labelstring

Consultare la sezione dedicata per i dettagli sui Fields.

Proprietà aggiuntive della classe

ParametroTipoDefaultDescrizione
$witharray[]Risorse da precaricare per evitare il problema delle N+1 query
$withoutarray[]Risorse da non precaricare