我有一个模型,其中有一个用于静态值的公共常量数组,即:
class StudentStatus extends Model
{
public const STATUSES = [
0 => 'Unknown', // Blank & Other entries
1 => 'Active', // Activo
2 => 'Cancelled', // Cancelado
3 => 'Concluded', // Concluido
];
到目前为止,我只会将报表或其他内容中的最终值翻译成所需的语言。然而,当我试图在select中翻译它时遇到了一个障碍。
控制器:
$statuses = StudentBursaryStatus::STATUSES; // gets the const and passes it to a view
查看:
{!! Form::select('status', [null=>__('Please select one').'...']+$statuses, null, ['class'=>'form-control kt-select2']) !!}
尝试运行__($statuses)会意外失败(“非法偏移类型”),因为正在尝试转换数组。尝试对模型中的每个值运行__()也会失败(“常量表达式包含无效操作”),即:
public const STATUSES = [
0 => __('Unknown'), // Blank & Other entries
1 => __('Active'), // Activo
2 => __('Cancelled'), // Cancelado
3 => __('Concluded'), // Concluido
];
除了通过控制器中的数组循环来手动转换每个值之外,还有更好的方法吗?
2条答案
按热度按时间ou6hu8tu1#
你不能用函数来定义预设变量的值,你可以在构造函数中定义它们,但那样它就不再是常量了。
所以我建议使用从常量创建转换数组的函数
然后:
htrmnn0y2#