@matttonks11 You could create a class that takes an Eloquent collection instance, spins through each model, and decrypts any encrypted values:
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
class ModelDecrypter
{
public function decryptModel(Model $model)
{
foreach ($model->getEncryptable() as $attribute) {
$model->setAttribute($attribute, decrypt($model->getAttribute($attribute)));
}
return $model;
}
public function decryptCollection(Collection $collection)
{
return $collection->map(function (Model $model) {
return $this->decryptModel($model);
});
}
}
$clientData = $client->with('groups:id,name')
->select('clients.id','clients.forename', 'clients.surname', 'clients.mobile', 'clients.email', 'clients.created_at')->latest();
$clientData = (new ModelDecrypter)->decryptCollection($clientData);
return datatables()->of($clientData)->toJson();