php - User Yii::t() value for arrays values -
i´m in proyect yii php framework , in muy model have public static array constante index this:
const estado_activa = 1; const estado_rechazada = 2; const estado_aceptada = 3; public static $estados = array( self::estado_activa => 'activa', self::estado_rechazada => 'rechazada', self::estado_aceptada => 'aceptada' );
i need replace 'activa' this
const estado_activa = 1; const estado_rechazada = 2; const estado_aceptada = 3; public static $estados = array( self::estado_activa => yii::t('category','activa'), self::estado_rechazada => yii::t('category','rechazada'), self::estado_aceptada => yii::t('category','aceptada'), );
when try error:
parse error: syntax error, unexpected '(', expecting ')'
i don´t understand what´s wrong. all..
using yii way (like in docs) create estados method:
const estado_activa = 1; const estado_rechazada = 2; const estado_aceptada = 3; public static function estados() { return array( self::estado_activa => yii::t('category','activa'), self::estado_rechazada => yii::t('category','rechazada'), self::estado_aceptada => yii::t('category','aceptada'), ); }
this way dont need instantiate class.
edit: if don't want evaluate yii::t
@ each call, use cached version:
const estado_activa = 1; const estado_rechazada = 2; const estado_aceptada = 3; private static $_estados = null; public static function estados() { if(null === self::$_estados) { self::$_estados = array( self::estado_activa => yii::t('category','activa'), self::estado_rechazada => yii::t('category','rechazada'), self::estado_aceptada => yii::t('category','aceptada'), ); } return self::$_estados; }
with approach yii::t
calls evaluated once.
Comments
Post a Comment