YII 框架学习随记
1.除了添加用$info = new good(); 调用save方法时执行的是insert
其他的用$info = $good::model();来实例化一个模型; 调用save方法时执行的是update方法
FindAll() 查询全部信息
Findbysql 根据sql语句查询信息
Findallbysql 根据sql语句查询全部信息
Findbypk 根据主键查询信息
Findallbypk 根据主键查询全部信息
Find 查询一条信息
findbyPK($id) 查找单条数据
Count() 查询总的数目
All和没有的区别是没有的话只查询一条数据,ALL则以数组传递
另外可以使用中间类criteria 对商品进行查找
$infos = $model - > findAll(array(
‘select’ => ‘username,pass,email’,
‘conditition’ => “username like ‘晶%’”,
‘order’ => ‘id desc’,
‘limit’ => 3,
‘offset’ => 6, //偏移量
));
下边写法同上边一样
$criteria = new CDbCriteria();
$criteria -> select = “username,pass,email”;
$criteria -> conditition = “username like ‘晶%’”;
$criteria -> order = ‘id desc’;
$criteria -> limit = 3;
$criteria -> offset = 6;
$infos = $model->findAll($criteria);
分页是在多处来的组件,在components写入类可以直接调用!
因为在main.php当中有用import引用
2.小物件widget的使用
dropDownList ---->下拉菜单
radioButtonList ---->单选按钮
CheckBoxlIST ---->复选框
foreach ($_POST['TblUser'] as $key => $value) {
$user_model -> $key = $value;
}
在YII里边这两个写法是 相等的
$user_model -> attributes = $_POST['TblUser'];
Framework-->validators 里边全是验证表单方法
Adderror和message验证方法时一样的
只不过adderror用于自定义的验证方法,message用于YII框架自己的方法
方法的执行顺序验证登陆
Save()--->validate()---->rules()
持久化用户信息用login()方法
If($user_login->validate() && $user_login->login()){
Echo ‘session已经储存了’
}
在前台页面可以用
Yii::app()->user->name获取用户名
Yii::app()->user->getIsGuest() 获取是不是游客
Yii验证码类在framework->web->widget->captcha
其中里边的2个文件一个是类,一个是PHP调用
使用方法。在当前的控制器里边定义一个
Function actions(){
Return array(
‘captcha’=>array(
‘class’=>’system.web.widgets.captcha.CCaptchaAction’
//这句话的意思是通过路径寻找验证码类
)
);
}
在form表单里边通过使用
<?php echo $form->widget(‘CCaptcha’); ?>
验证码类中加入这条语句实现刷新
public function run()
{
$this-> fixedVerifyCode = substr(md5(mt_rand(1, 10000)),0,4);
if(isset($_GET[self::REFRESH_GET_VAR])) // AJAX request for regenerating code
{
$code=$this->getVerifyCode(true);
echo CJSON::encode(array(
'hash1'=>$this->generateValidationHash($code),
'hash2'=>$this->generateValidationHash(strtolower($code)),
// we add a random 'v' parameter so that FireFox can refresh the image
// when src attribute of image tag is changed
'url'=>$this->getController()->createUrl($this->getId(),array('v' => uniqid())),
));
}
else
$this->renderImage($this->getVerifyCode());
Yii::app()->end();
}
添加session 和使用
YII::app->session[‘username’] = liang;
Echo YII::app->session[‘id’] = 1;
删除一个session信息unset(YII::app->session[‘username’]);
删除全部的session
Yii::app()->session->clear();
Yii::app()->session->destroy();
Cookie 在YII框架中的使用
$ck = new ChttpCookie(‘hobby’,’篮球,足球’);
$ck->expire = time()+3600;
把$ck放入Cookie 组件里边
YII::app()->request->cookie[‘hobby’] = $ck;
访问cookie
Echo yii::app->request->cookie[‘hobby’]
删除cookie
Unset(yii::app->request->cookies[‘hobby’]);
YII系统中的路径别名
YII就是框架可以操作使用的类
YII::app 是一个实例,是在当前框架里边可以直接使用 的一个实例
2.YII 简单blog记录
1、生成项目----打开cmd
% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
2、套界面
在控制器里
$name = $this->getId(); // controller
$name = $action->id; // action
在视图里
$name = Yii::app()->controller->id; // controller
$name = $this->getAction()->getId(); // action
在调用search里边获取当前控制器的动作
Yii::app()->controller->getAction()->getId()
形成单独下拉页面和验证用js
1.在一个新的页面当中写
<?php $this->beginWidget('bootstrap.widgets.TbModal',
array(
'id' => 'li_Modal',
'htmlOptions' => array(
'style' => 'height:430px;min-width:700px !important;'),
'options' => array(
"backdrop" => 'static')
)); ?>
2.然后渲染
$this->renderPartial('library_modal',array('model' => $model));
表单是否图片显示
<?php
echo $form->toggleButtonRow($model, 'is_recommend', array(
'options' => array(
'enabledLabel' => '是',
'disabledLabel' => '否',
'enabledStyle' => 'success',
'disabledStyle' => 'danger',
),
));
?>
<?php $this->endWidget(); ?>
设置form表单Tsearch 搜索
在试图里边调用
在列当中显示value的值
Yii 树形结构体
1、在要显示的表单里边
2、默认选中的话用ajax传值
3、控制器里边的方法
本公司获取当前的用户名和昵称等
User::getNameById(Yii::app()->user->id);
$self = Yii::app()->user;echo User::getAvatar($self->id, $self->avatar, 'b', $self->gender);头像