Skip to content

Actions ​

Queste specifiche classi possono essere usate per eseguire azioni massive sui record della tabella di origine.

Proprietà della classe ​

ParametroTipoDefaultDescrizione
$idstringcampo richiestoIdentificatione dell'Action dichiarata dal parametro "action" della Request
$iconstring""L'icona che comparirà nella select
$colorstring""Colore dell'icona e dell'etichetta
$optionsarray[]??
$bulkboolfalseRende l'Action disponbile per l'uso massivo, senza selezionare le righe dalla Datatable
$multiplebooltrueRende l'Action disponbile per l'uso quando alcune righe della Datatable sono selezionate
$clientbooltrue??
$mobilebooltrue??
$confirmboolfalseFa comparire un popup di conferma all'utente nel caso true

Metodi della classe ​

label() ​

Metodo utilizzato per impostare l'etichetta che comparirà al fianco dell'icona sulla select dell'interfaccia.

php
public function label():string
{
	return __("Esporta in formato XLSX (.xlsx)");
}

handle() ​

Metodo dentro il quale scrivere il codice che dovrà essere eseguito quando l'utente cliccherà sulla Action.

php
public function handle(Request $request, DataTablesAdapter $adapter, DataTablesConfiguration $configuration): JsonResponse
{
	$this->getSelectedItemsBuilder($request, $adapter, $configuration)
		->select('users.*') //per selezionare tutte le colonne che nell'array della configuration sono assenti
		->chunk(100, function (Collection $collection){
			$collection->each(fn (App\Models\User $user) => $user->markEmailAsVerified());
		});

	return $this->refresh();
}

Metodi utili disponibili dalla classe estesa Action ​

getSelectedItemsBuilder() ​

Questo metodo ritornerà il Builder con i dati selezionati e/o già filtrati, in poche parole, è come avere una query pronta da eseguire sul DB.

getSelectedItems() ​

Questo metodo ritornerà la Collection con i dati selezionati e/o già filtrati, prende il Builder del metodo precedente, ma attenzione, l'array ricevuto come output non sarà composto da N Model Eloquent ma da Collection, che rispecchieranno esattamente l'elenco dei Field dichiarati per la Datatable (sono coinvolti anche quei Field con logica custom).