L'implementazione dei virtual field in Laravel è molto semplice, ma la documentazione ufficiale non è immediata. Vedremo qui come fare.
I virtual field sono campi del model che non hanno corrispondenza nel database. Essi sono utili nel caso, ad esempio, si desideri riassumere più campi del model in un singolo "campo virtuale".
Vediamo l'esempio della classe Fattura così definita
Si desidera definire il virtual field descrizione_numero_data che restituisca la seguente concatenazione del numero e della data
"Fattura numero 5 del 15/07/2000".
In Laravel l'implementazione del virtual field avviene:
N.B: L'Accessor deve necessariamente avere la signature public function get<nome_virtual_field>Attribute()
L'utilizzo del virtual field avviene nel modo consueto:
I virtual field sono campi del model che non hanno corrispondenza nel database. Essi sono utili nel caso, ad esempio, si desideri riassumere più campi del model in un singolo "campo virtuale".
Vediamo l'esempio della classe Fattura così definita
Fattura |
numero: Integer
|
data_fattura: Datetime
[...] |
Si desidera definire il virtual field descrizione_numero_data che restituisca la seguente concatenazione del numero e della data
"Fattura numero 5 del 15/07/2000".
In Laravel l'implementazione del virtual field avviene:
- implementando un Accessor, che restituisce la stringa desiderata;
- specificando il nome_virtual_field nell'array $appends del model.
<?php
class Fattura extends Model {
protected $appends = array("descrizione_numero_data");
public function getDescrizioneNumeroDataAttribute() {
return "Fattura numero ".$this->numero." del ".$this->data_fattura;
}
}
N.B: L'Accessor deve necessariamente avere la signature public function get<nome_virtual_field>Attribute()
L'utilizzo del virtual field avviene nel modo consueto:
<?php
$fattura = Fattura::find(1);
echo $fattura->descrizione_numero_data;
Commenti
Posta un commento