yii2的yii:t怎么使用
2个回答
2015-12-26
展开全部
YII使用小记-Yii::t()-状态值匹配
1,使用updateCounters()来更新计数器字段。
Book::model()->updateCounters(array('download_count'=>1),':id=id',array(':id'=>$id));
2,使用sendFile()来下载文件。
$type = LFilter::checkString($_GET['t']);
$dataProvider = Book::model()->findByPk($id);
$content = $this->renderPartial('book',array(
'dataProvider' => $dataProvider,
'type' => $type,
),true,false);
Yii::app()->request->sendFile($dataProvider->name.'.'.$type,$content);
3,设计数据库时候如果create_time,update_time字段为int(10).在模型中使用行为插件
public function behaviors()
{
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
)
);
}
4,如果有些字段使用1,2,3之类的数字存储,在程序中使用时候含义不明确。可以model中加入如下函数.
private static $_items = array();
public static function loadItems($type,$code=null)
{
self::$_items = array(
'status' => array(
'1' => Yii::t('dh','开启'),
'2' => Yii::t('dh','关闭'),
),
'type' => array(
'1' => Yii::t('dh','产品'),
'2' => Yii::t('dh','文章'),
),
);
return $code ? self::$_items[$type][$code] : self::$_items[$type];
}
5,多语言使用Yii::t()函数。
新建文件/protected/messages/zh_cn/message.php内容如下代码
return array('some message'=>'中文信息');
在view文件里如下
echo Yii::t('message','some message');
在config/main.php里加上:'language'=>'zh_cn',
显示结果就是:'中文信息'。
public function attributeLabels()
{
return array(
'verifyCode'=>Yii::t('default','验证码'),
'name'=>Yii::t('default','名字'),
'email'=>Yii::t('default','邮箱'),
'subject'=>Yii::t('default','标题'),
'body'=>Yii::t('default','内容'),
'required'=>Yii::t('default','变量"{var}"没有定义',array('{var}'=>$var));
);
}
6,数据库表使用了前缀,则使用{{$tableName}}。
public function tableName()
{
return '{{product}}';
7,Cookie的使用
//设置Cookie
$cookie=new CHttpCookie($name,$value);
$cookie=time()+60*60*24;
Yii::app()->request->cookies[$name]=$cookie;
//获取Cookie
$cookie=Yii::app()->request->cookies[$name];
$value=$cookie->value;
//删除Cookie
$cookie = Yii::app()->request->getCookies();
unset($cookie[$name]);
}
8,findAll()的使用;
$params=array(
'select'=>'id,name,image',
'order'=>'total_point DESC',
'limit'=>5,
);
$this->findAll($params);
find()使用同理,只是返回一条数据。
9,readAll()返回数组结果集
$query = 'SELECT id,username FROM user';
$command = Yii::app()->db->createCommand($query);
return $command->query()->readAll();
1,使用updateCounters()来更新计数器字段。
Book::model()->updateCounters(array('download_count'=>1),':id=id',array(':id'=>$id));
2,使用sendFile()来下载文件。
$type = LFilter::checkString($_GET['t']);
$dataProvider = Book::model()->findByPk($id);
$content = $this->renderPartial('book',array(
'dataProvider' => $dataProvider,
'type' => $type,
),true,false);
Yii::app()->request->sendFile($dataProvider->name.'.'.$type,$content);
3,设计数据库时候如果create_time,update_time字段为int(10).在模型中使用行为插件
public function behaviors()
{
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
)
);
}
4,如果有些字段使用1,2,3之类的数字存储,在程序中使用时候含义不明确。可以model中加入如下函数.
private static $_items = array();
public static function loadItems($type,$code=null)
{
self::$_items = array(
'status' => array(
'1' => Yii::t('dh','开启'),
'2' => Yii::t('dh','关闭'),
),
'type' => array(
'1' => Yii::t('dh','产品'),
'2' => Yii::t('dh','文章'),
),
);
return $code ? self::$_items[$type][$code] : self::$_items[$type];
}
5,多语言使用Yii::t()函数。
新建文件/protected/messages/zh_cn/message.php内容如下代码
return array('some message'=>'中文信息');
在view文件里如下
echo Yii::t('message','some message');
在config/main.php里加上:'language'=>'zh_cn',
显示结果就是:'中文信息'。
public function attributeLabels()
{
return array(
'verifyCode'=>Yii::t('default','验证码'),
'name'=>Yii::t('default','名字'),
'email'=>Yii::t('default','邮箱'),
'subject'=>Yii::t('default','标题'),
'body'=>Yii::t('default','内容'),
'required'=>Yii::t('default','变量"{var}"没有定义',array('{var}'=>$var));
);
}
6,数据库表使用了前缀,则使用{{$tableName}}。
public function tableName()
{
return '{{product}}';
7,Cookie的使用
//设置Cookie
$cookie=new CHttpCookie($name,$value);
$cookie=time()+60*60*24;
Yii::app()->request->cookies[$name]=$cookie;
//获取Cookie
$cookie=Yii::app()->request->cookies[$name];
$value=$cookie->value;
//删除Cookie
$cookie = Yii::app()->request->getCookies();
unset($cookie[$name]);
}
8,findAll()的使用;
$params=array(
'select'=>'id,name,image',
'order'=>'total_point DESC',
'limit'=>5,
);
$this->findAll($params);
find()使用同理,只是返回一条数据。
9,readAll()返回数组结果集
$query = 'SELECT id,username FROM user';
$command = Yii::app()->db->createCommand($query);
return $command->query()->readAll();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
echo \Yii::t('app', '待翻译的!');
前提是你开启了国际化 i18N
参考官方教程 高级专题(Special Topics) - 国际化(Internationalization)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询