我的控制器中有一系列不同的优先级:
var $priorities = array(3 => 'Low', 2 => 'Medium', 1 => 'High');
我现在如何设法使用__-函数转换这些值?我得到一个PHP期望结束')'括号的数组。这是我试图使用的代码:
var $priorities = array(3 => __('Low'), 2 => __('Medium'), 1 => __('High'));
我使用此变量在我的添加和编辑操作中设置它。这些是选择输入中的选项,如果有变化,我不想在视图中摆弄。
答案 0 :(得分:3)
根据var
关键字判断我怀疑你是在尝试在这里声明一个类属性。这不起作用,您只能使用静态值声明属性,即此时不能调用任何函数或执行任何操作。
您需要稍后翻译这些值,或稍后将其分配给$this->priorities
。 __construct
方法是一个好地方,如果控制器beforeFilter
也很好。
您还需要使用__
作为第二个参数调用true
函数:
$this->priorities = array(3 => __('Low', true), 2 => __('Medium', true), 1 => __('High', true));
答案 1 :(得分:0)
为什么不试试array_map
?
var $priorities = array(3 => 'Low', 2 => 'Medium', 1 => 'High');
$priorities = array_map("__", $priorities, true);
确保将翻译放在适当的位置。更多信息here about Internationalization & Localization