
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' => 'ziibehaviorsCTimestampBehavior',
'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/messagephp内容如下代码
return array('some message'=>'中文信息');
在view文件里如下
echo Yii::t('message','some message');
在config/mainphp里加上:'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 C>
有时候,写程序的时候需要获取计算机的网络信息,比如IP地址、电脑名称、DNS等信息。IP地址和电脑名称是比较容易获取到的,而要想获取地址掩码、DNS、网关等信息就有些麻烦了。在Windows下我们一般都是通过从注册表读取这些信息。在Linux怎么做呢?其实,Linux下更加容易一些。因为我们可以拿现成的程序看它的源代码。通过阅读其源代码找到解决该问题的方法。那么,看哪个程序的源代码呢?如果你使用过Linux,并且比较熟悉的话就肯定知道一个命令ifconfig。这个命令和Windows下的ipconfig差不多,都可以输出网卡的信息,其中就包含DNS、掩码等信息。所以,我们可以通过看它的源代码来找到解决该问题的方法。获取系统中的网卡数量并没有那个系统调用提供网卡数量的获取。但是,我们可以通过强大的proc文件系统获取网卡数量的信息。实际上,ifconfig也是这样做的,请看示例代码如下:0001#include0002#include0003#include00040005intGetNetCardCount()0006{0007intnCount=0;0008FILEf=fopen("/proc/net/dev","r");0009if(!f)0010{0011fprintf(stderr,"Open/proc/net/devfailed!errno:%d\n",errno);0012returnnCount;0013}00140015charszLine[512];00160017fgets(szLine,sizeof(szLine),f);0018fgets(szLine,sizeof(szLine),f);00190020while(fgets(szLine,sizeof(szLine),f))0021{0022charszName[128]={0};0023sscanf(szLine,"%s",szName);0024intnLen=strlen(szName);0025if(nLensa_data[2])));}代码很简单,就不做解释了。怎么获取网关呢?这个稍微有点麻烦一些,不过和获取网卡数量相似,都是通过proc文件系统。这次分析的/proc/net/route文件。我就不再贴出示例代码了。最后,我把运行示例程序获取到的信息附上,以供大家有个直观的认识:eth0:MAC:08-00-27-98-bf-f3IP:1921681106BroadIP:255255255255Netmask:2552552550Gateway:19216811eth1:MAC:08-00-27-16-f4-bfIP:1921681108BroadIP:1921681255Netmask:2552552550Gateway:0000eth2:MAC:08-00-27-37-9c-91IP:0000BroadIP:0000Netmask:0000Gateway:0000eth3:MAC:08-00-27-5a-d2-39IP:0000BroadIP:0000Netmask:0000Gateway:0000NetCardCount:4DNS0:21821351DNS1:61147371
这个应该需要使用ajax异步加载
比如列表页(这是一个分页)
然后使用ajax获取另一个分页的内容,然后显示在第一个分页里面,这样就实现了两个分页
虽然说得很笼统,我也很难说得非常详细,我建议你用jquery的ajax(如果不会的话),然后就可以很简单地实现
以上就是关于yii2的yii:t怎么使用全部的内容,包括:yii2的yii:t怎么使用、yii2怎么获取上一条用户提交数据的id、网卡init dev fail怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)