I have a model with a public const array in it for static values, ie:
class StudentStatus extends Model
{
public const STATUSES = [
0 => 'Unknown', // Blank & Other entries
1 => 'Active', // Activo
2 => 'Cancelled', // Cancelado
3 => 'Concluded', // Concluido
];
Until now, I would just translate the end value in a report or something to the desired language. However, I have hit a snag when trying to translate this in a select.
Controller:
$statuses = StudentBursaryStatus::STATUSES; // gets the const and passes it to a view
View:
{!! Form::select('status', [null=>__('Please select one').'...']+$statuses, null, ['class'=>'form-control kt-select2']) !!}
Trying to run __($statuses) expectedly fails ("Illegal offset type") because one is trying to translate an array. Trying to run __() on each value in the model also fails ("Constant expression contains invalid operations"), ie:
public const STATUSES = [
0 => __('Unknown'), // Blank & Other entries
1 => __('Active'), // Activo
2 => __('Cancelled'), // Cancelado
3 => __('Concluded'), // Concluido
];
Short of looping through the array in the controller to translate each value manually - is there a better method to do this?