Yii 1.0 常用操作记录

Yii  

Yii1.0 常用操作总结

DAO

  1. class Dao extends Controller
  2. {
  3. //注意:涉及到表名要用{{表名}}才能自动加上表前缀
  4. //执行原生语句
  5. public function actionSql()
  6. {
  7. $res = Yii::app()->db->createCommand($sql)->execute();//返回影响条数
  8. //使用createCommand()操作数据库对象时,数据库返回的结果是数组
  9. createCommand($sql)->queryRow();//$sql 原生 sql语句//返回单条
  10. CreateCommand($sql)->queryAll();//返回集合
  11. }
  12. //插入
  13. public function actionCreate()
  14. {
  15. $res = Yii::app()->db->createCommand()->insert('表名', ['字段名' => '值']);
  16. Yii::app()->db->getLastInsertID();//获取最新插入的ID
  17. }
  18. //修改
  19. public function actionUpdate()
  20. {
  21. $res = Yii::app()->db->createCommand()->update('表名', ['字段名' => '值'], '字段名 > :值', [':值' => '值']);
  22. }
  23. //删除
  24. public function actionDelete()
  25. {
  26. $res = Yii::app()->db->createCommand()->delete('表名', '字段名 = :值', [':值' => '值']);
  27. }
  28. //查单条
  29. public function actionRow()
  30. {
  31. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 = :值', [':值' => '值'])->queryRow();
  32. }
  33. //查多条
  34. public function actionAll()
  35. {
  36. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryAll();
  37. }
  38. //统计数据 数量
  39. public function actionScalar()
  40. {
  41. $res = Yii::app()->db->createCommand()->select('count(字段名)')->from('表名')->where('字段名 < :值', [':值' => '值'])->queryScalar();
  42. }
  43. //指定列查询 id
  44. public function actionColumn()
  45. {
  46. $res = Yii::app()->db->createCommand()->select('id')->from('表名')->where('字段名 > :值', [':值' => '值'])->queryColumn();
  47. }
  48. //复杂查询方式
  49. public function actionAnd()
  50. {
  51. //查询ID 大于 1 并且 小于 5 的所有数据集合
  52. //and() 字串形式
  53. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名1 > :值1 and 字段名1 < :值2', [':值1' => '值1', ':值2' => '值2'])->queryAll();
  54. //and() 数组形式
  55. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['and', '字段名1 > 值1', '字段名1 < 值2'])->queryAll();
  56. //andWhere() 方法
  57. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where('字段名 > :值', [':值' => '值'])->andWhere('字段名 < :值', [':值' => '值'])->queryAll();
  58. }
  59. //使用in 查询出 ID 在 5 和 6 之间的数据集合
  60. public function actionIn()
  61. {
  62. $res = Yii::app()->db->creatCommand()->select('字段名,字段名')->from('表名')->where('in', '字段名ID', [5, 6])->queryAll();
  63. }
  64. //使用like 查询 并且 id 大于6 小于 10
  65. public function actionLike()
  66. {
  67. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', '字段名', '%关键字%'])->andWhere(['and', 'id > 6', 'id < 10'])->queryAll();
  68. }
  69. //查询出名字里 带有关键字的 的三条数据 ID 倒序 略过3条数据
  70. public function actionLimit()
  71. {
  72. $res = Yii::app()->db->createCommand()->select('字段名,字段名')->from('表名')->where(['like', 'name', '%关键字%'])->limit(3)->offset(3)->order('id desc')->queryAll();
  73. }
  74. //关联查询
  75. public function actionJoin()
  76. {
  77. //查询 ID 大于2 小于6 的所有用户信息 并查询 城市名称
  78. $res = Yii::app()->db->createCommand()->select('u.id,u.name,c.name')
  79. ->from('表1 u')
  80. ->join('表2 c', 'c.id = u.cid')
  81. ->where('u.id > 2')
  82. ->andWhere('u.id < 6')
  83. ->queryAll();
  84. }
  85. }

model_curd

  1. //实例化模型操作数据库,对象是model,返回的结果是对象
  2. //增
  3. //只用 新增的情况 需要new 模型
  4. $model = new Model();
  5. $model->attributes = $_POST['user'];
  6. //使用attributes 只收录 验证过后的数据
  7. $model->save();
  8. //save 方法,在new Model 的时候是增加,
  9. //在$model::model()静态调用时候是修改
  10. //查询单条
  11. find() //查询一条信息
  12. //例: find('username = :name',array(':name'=>'admin'))
  13. findByPk() //通过主键来查询
  14. //例: findByPk(1)
  15. findBySql() //通过sql 来查询出一条
  16. //例: findBySql('select * from {{user}}')
  17. //查询多条
  18. findAll() //查询多条信息
  19. //例: findAll('color=:color',array(':color'=>'red'))
  20. findAllByPk() //通过主键来查询,可以多个主键
  21. //例: findAllByPk(array(1,2,3))
  22. findAllBySql() //通过 sql 来查询出多条
  23. //例: findAllBySql('select * from {{admin}}')
  24. //改
  25. $model = Model::model();//静态调用
  26. $info = $model->findByPk($id); //根据主键查询出改数据对象
  27. if (isset($_POST['user'])) {
  28. //判断数据是否存在 存在则赋值 修改操作
  29. $info->attributes = $_POST['user'];
  30. $info->save();//此时修改操作
  31. }
  32. $this->render('edit', array('model' => $info));//讲数据对象传送到前台
  33. //删
  34. $model = Model::model()->deleteByPk($id);

验证码

  1. //验证码使用
  2. 1.建立方法 actions
  3. 2.在视图中应用小物件
  4. 3.修改核心类 CCaptchaAction (用 renderPartial 需要修改,因为不自动加载 Yii js 等,所以点验证码不变)
  5. 4.设置比对规则
  6. 控制器中写入
  7. public function actions()
  8. {
  9. return array(
  10. 'captcha'=>array(
  11. 'class'=>'CCatpchaAction',
  12. 'height'=>25,
  13. 'width'=>80,
  14. 'minLength' => 4,
  15. 'maxLength' => 4
  16. )
  17. );
  18. }
  19. ?>
  20. 在视图中:
  21. 1)普通写法:
  22. <?php $this->widget('CCaptcha')?>
  23. 2)带有点击刷新:
  24. <?php $this->widget('CCaptcha',array('showRefreshButton'=>false,'clickableImage'=>true,'imageOptions'=>array('alt'=>'点击换图','title'=>'点击换图','style'=>'cursor:pointer')));?>
  25. 在视图中:
  26. 显示错误信息:
  27. <?php echo $form->error('模型','name 名')?>
  28. 修改核心类:
  29. framework/web/widgets/captcha/CCaptchaAction.php
  30. 修改 run 方法里面:
  31. $this->renderImage($this->getVerifyCode(TRUE));
  32. 设置验证规则:
  33. loginForm.php rules 方法里:
  34. array('name 值','captcha','错误信息');
  35. array('verify','captcha','message'=>'验证码错误');
  36. 触发验证:
  37. $loginForm->attributes = $_POST['LoginForm'];
  38. $loginForm->validate();

常用代码

  1. 1.关于Yii::app控制器页面的跳转的问题
  2. $this->redirect("跳转的地址");
  3. $this->redirectMessage("提示信息","跳转的地址");
  4. $this->redirect(array('/h5user/login',"returnUrl"=>Yii::app()->request->url)); //生成GET形式传参
  5. redirectrender的区别
  6. $this->redirect(url);
  7. $this->render(url,array('数据'));
  8. 2.Yii操作缓存()
  9. 2.1设定数据缓存(针对数据缓存,Yii有几种数据缓存的类型呢 ?)
  10. //数据缓存
  11. Yii::app()->dataCache->get(md5($key.CITY));
  12. Yii::app()->dataCache->set('变量名','变量值','变量的有效期');
  13. 例如:Yii::app()->dataCache->set(md5($key . CITY), $info[0]['data'], 3600);
  14. //删除数据缓存
  15. Yii::app()->dataCache->delete("变量名");
  16. //文件缓存
  17. Yii::app()->fileCache->get(md5($key.CITY));
  18. Yii::app()->fileCache->set('变量名','变量值','变量的有效期'); 例如:Yii::app()->fileCache->set(md5($key . CITY), $info[0]['data'], 3600); (修改缓存的内容)
  19. Yii::app()->fileCache->add('变量名''变量值','有效期') add?????????"增加新的缓存"),如果有对应的缓存,则后面的不会将前面的替换掉
  20. Yii::app()->fileCache->delete("变量名"); 删除缓存内同
  21. Yii::app()->fileCache->flush(); 清空所有的缓存数据
  22. 对于Yii的数据缓存,是以hash数据结构进行的缓存,
  23. memcahced 的数据类型比较单一,使用的是hash value的类型只能是字符的形式
  24. redis 的数据类型是多样化的,但是对于php能使用的最好是字符型,对于多结构的数据 ,可以使用json_encode base64 等技术 ,对数据类型进行转换。
  25. 2.2设定文件缓存
  26. 文件缓存就是将得到的数据保存在文件里面,对于这种数据类型Yii控制的比较牛逼,好像任何的数据类型都能获取,这些需要做下测试。
  27. 2.3数据缓存和文件缓存的区别
  28. 同一个网站可以采用文件缓存来进行数据交互,而跨站的数据则需要采用memcached 这样的内存缓存来完成夸张,或则跨域名的数据交互。
  29. 2.4 缓存的有效期
  30. Yii::app()->cachae->add('key','aaaaa',15); 设定缓存的有效期是15秒;
  31. 2.5 缓存的依赖
  32. 2.5.1 缓存的文件依赖
  33. Yii::app()->cachae->add('key','aaaaa',15,'依赖的对象');
  34. 文件缓存依赖,一旦文件的时间,或则内容发生了改变,改缓存就是消失;
  35. 2.5.2 表达式依赖(会根据表达式对应的值来进行对应的删除)
  36. $dependecy=new ExpressionDependency(
  37. ['expression'=>'Yii::app()->request->getParam('name')'],
  38. )
  39. Yii::app()->cache->add('key_words','hello words',3000,$dependecy);
  40. 一点接受的参数发生了改变,该缓存对应的数据就会被删除掉,这个依赖可以用来存储每个用户的不同的资料
  41. 2.5.3 数据库的依赖(DB依赖,一旦数据库中的数据发生了改变,该缓存就是自动的删除)
  42. $dependecy=new dbdependency(
  43. array('sql'=>'select * from db')
  44. )
  45. Yii::app()->cache->add('key_words',$dependecy)
  46. 2.6 片段缓存
  47. //判断缓存的依赖
  48. $dependency=array(
  49. 'class'=>'FileDependency',
  50. 'filename'=>’依赖的文件路径'
  51. )
  52. /************片段的时间缓存**************/
  53. <?php if($this->beginCache('cache_div',array('duration'=>片段的缓存时间,))){ ?> 注:duration:持续,持续的时间,期间
  54. <div id="cacha_div">
  55. <div>这个需要进行缓存</div>
  56. </div>
  57. <?php
  58. $this->endCache()
  59. }
  60. ?>
  61. /**********片段缓存的依赖**********/
  62. <?php if($this->beginCache('cache_div',array('dependency'=>$dependency))){ ?>
  63. <div id="cacha_div">
  64. <div>这个需要进行缓存</div>
  65. </div>
  66. <?php $this->endCache() }?>
  67. /*********缓存的开关******/
  68. enabled
  69. <?php if($this->beginCache('cache_div',array('enabled'=>true))){ ?>
  70. /***********判断缓存的嵌套**********/
  71. 注意内外层的时间的问题
  72. 2.7 整个页面进行缓存
  73. 这个方法会先于所有的方法进行执行,可以对Yii的进行一些数据的初始化,现在见到的有beforeaction 这个额方法
  74. public function behaviors(){
  75. return [
  76. 'class'=>'yii\filters\pageCache', //提前声明要进行文件的缓存,所有的控制器都会进行缓存
  77. 'only'=>array(''), //指定控制器进行缓存
  78. 'dependency'=>array(
  79. 'class'=>'';
  80. 'filename'=>''
  81. )
  82. 'duration'=>'页面缓存的有效期'
  83. ]
  84. }
  85. 2.8 http缓存
  86. 3.Yii的数据库查询
  87. Yii::app()->db->........
  88. Yii::app()->bbs->createCommand($sql)->queryRow(), 查询的单列的数据,是一个一维数据
  89. Yii::app()->bbs->createCommand($sql)->queryAll(), 查询出的多列数据,是一个二位数据
  90. Yii::app()->bbs->createCommand($sql)->queryScalar(),查询的是第一行,第一列的一个值,返回的是单个值,可以直接的赋值给变量,然后直接的使用。
  91. Yii::app()->bbs->createCommand($sql)->execute() , 执行一条sql语句,返回他执行后的一个影响的条数。
  92. $newsInfo = News::model()->findByPk($newsId);//根据主键查询单条记录,返回一个对象
  93. //查找满足指定条件的结果中的第一行
  94. $post=Post::model()->find($condition,$params);
  95. //查找具有指定主键值的那一行
  96. $post=Post::model()->findByPk($postID,$condition,$params);
  97. //查找具有指定属性值的行
  98. $post=Post::model()->findByAttributes($attributes,$condition,$params);//未找到返回null
  99. //通过指定的SQL 语句查找结果中的第一行
  100. $post=Post::model()->findBySql($sql,$params);
  101. 1、 findByAttributes()的用法:根据条件查找一条记录
  102. $menu = Menus::model()->findByAttributes(array('name' => $menu_name));
  103. echo $menu->name ;
  104. 2、根据条件查找一条记录 还可以直接用find():
  105. $menu = Menus::model()->find('name=:name', array(':name' => $menu_name));
  106. echo $menu->name;
  107. 获取主键
  108. $model->primarykey
  109. 4.关于使用Yii的查询,返回对象应该如何处理。???
  110. 5.Yii后台保存城市名字的语法是$_COOKIE['city_code'] ,前台用的是常量 CITY
  111. 6.后天远程调用前台的方法;采用了Clien::call('控制器名称/方法名称',array(对应的参数))
  112. 7.Yii加载远程的文件
  113. require_once(Yii::app()->basePath.'/extensions/ucclient/client.php')
  114. 8.如何在Yii的前端加入样式和js 脚本
  115. Yii::app()->clientScript->registerScriptFile ( Yii::app()->params['publicPath'].'js/jquery.js');
  116. Yii::app ()->clientScript->registerCssFile ( Yii::app()->params['publicPath'].'css/style-lt.css' );
  117. 9.Yii获取当前的控制器和方法
  118. 当前控制器 $this->getId();
  119. 当前的方法 $this->action->getId();
  120. 在控制器里
  121. $name = $this->getId(); // controller
  122. $name = $action->id; // action
  123. 在视图里
  124. $name = Yii::app()->controller->id; // controller
  125. $name = $this->getAction()->getId(); // action
  126. 在view中得到当前controller的ID方法 :Yii::app()->getController()->id;
  127. 在view中得到当前action的ID方法 :Yii::app()->getController()->getAction()->id;
  128. yii获取ip地址 :Yii::app()->request->userHostAddress;
  129. yii判断提交方式 :Yii::app()->request->isPostRequest
  130. 得到当前域名: Yii::app()->request->hostInfo
  131. 得到proteced目录的物理路径 :YII::app()->basePath;
  132. 获得上一页的url以返回 :Yii::app()->request->urlReferrer;
  133. 得到当前url :Yii::app()->request->url;
  134. 得到当前home url :Yii::app()->homeUrl
  135. 得到当前return url :Yii::app()->user->returnUrl
  136. 项目路径 :dirname(Yii::app()->BasePath)
  137. 接收参数
  138. Yii::app()->request->getQuery('page','1');
  139. Yii::app()->request->getPost('page','1');
  140. Yii::app()->request->getParam('page','1');//两种都能接收到
  141. 10.模型依靠字段来进行查询
  142. forumPostzanlog::model()->fingbypk() 依靠主键对数据库进行查询
  143. forumPostzanlog::model()->findByAttributes(array(
  144. 'uid'=>$uid,
  145. 'pid'=>$pid
  146. ))
  147. 这样的查询返回的是一个数据对象,具体这个对象和queryall 他们之间的区别,有待考察下,对象里面的字段全部都是他的属性值
  148. 11. Yii事务回滚(数据库的回滚):
  149. 注:事物回滚针对的是对数据库做的处理,如果是改操作中间出现了终端,原来的操作全部回来起始时候的操作状态:
  150. try{
  151. $transaction=Yii::app()->bbs->beginTransaction();
  152. $transaction->commit(); 事物完成
  153. }catch(Exception $e){
  154. $transaction->rollback(); 事物回滚
  155. }
  156. 还有就是在处理的时候,还有捕获异常,这个是php自带的一个动能,结合try catch,配合使用
  157. throw new Exception("主题帖保存失败!"); //抛出异常
  158. catch(Exception $e){
  159. $transaction->rollback();
  160. $std->type=3;
  161. $std->msg=$e->getMessage();
  162. 捕获当前的异常
  163. 12.使用 CHtml::ajaxLink() 穿件ajax请求
  164. CHtml::ajaxLink(
  165. '修改',
  166. $this->createUrl('user/editUser'),
  167. array(
  168. 'beforeSend'=>'function(){}',
  169. 'success'=>'function(data){
  170. if(data){
  171. jsonObj = $.parseJSON(data);
  172. if(jsonObj=="-1"){
  173. alert("用户名不合法");
  174. }else if(jsonObj=="1"){
  175. alert("修改成功");
  176. }else{
  177. }
  178. }
  179. }',
  180. 'data'=>array('type'=>1,'field'=>'js:$('#realname').val()'),
  181. 'type'=>'GET'
  182. )
  183. )
  184. 13.submit的ajax方式
  185. <?php
  186. echo CHtml::ajaxSubmitButton(
  187. ' ',
  188. $this->createUrl('user/subemail'),
  189. array('beforeSend' => 'function(){ }',
  190. 'success' => 'function(data){
  191. if(data){
  192. jsonObj = $.parseJSON(data);
  193. if(jsonObj=="ok"){
  194. alert("订阅成功");
  195. $("#notification").hide();
  196. }else if(jsonObj=="codeerror"){
  197. $("#getcode").html("验证码错误,请重新输入");
  198. }else{
  199. $.each(jsonObj,function(i,n){
  200. $("#"+i+"_em_").html(n);
  201. $("#"+i+"_em_").css("display","");
  202. })
  203. } } }',
  204. ),
  205. array('class' => "usefog_but")
  206. );
  207. ?>
  208. 13.获取数据插入的第一条数据
  209. $threadModel->save();
  210. $rId=$threadModel->attributes['id'];
  211. 14.如何重新的刷新solr
  212. 14.1 使用的是一个接口的调用的函数client::call('cacheSolr/house',array('fid'=>))
  213. 14.2 如何使用solr进行查询
  214. solrSearch::create("house")->index(
  215. array(
  216. 'fq'=>array('floortype:2','regionld:'.$houser['regionld']), (查询的条件)
  217. 'fl'=>'id,name', (查询的字段)
  218. 'limit'=>6, (查询的条数)
  219. 'offset'=>0, (偏移量)
  220. 'sort'=>'recommenndIndex desc' (排序方式)
  221. ));
  222. 14.3 slor数据的更新
  223. $this->solr->update(array($data)); //$data 是一个数组,和solr的数据格式是一样的
  224. 14.4 solr的删除
  225. $this->solr->deleteByQuery('id:' . $id . '_' . $type);
  226. 14.5 默认的solr查询设定
  227. public function index($data){
  228. $this->dafalutSort='isbest desc';
  229. return $this->search($data)
  230. }
  231. 不等于:content:['' TO *];
  232. 14.6 solr的增加
  233. public function addData($data) {
  234. $documents = array();
  235. foreach ($data as $fields) {
  236. $part = new Apache_Solr_Document(); //创建一个solr的对象
  237. foreach ($fields as $key => $value) {
  238. if (is_array($value)) {
  239. foreach ($value as $datum) {
  240. $part->setMultiValue($key, $datum);
  241. }
  242. } else {
  243. $part->$key = $value;
  244. }
  245. }
  246. $documents[] = $part; // 用数组包含这个solr对象
  247. }
  248. try {
  249. $this->solr->addDocuments($documents); //将该对象增加到solr(一定要注意,增加的是一个数组)
  250. } catch (Exception $e) {
  251. echo $e->getMessage();
  252. }
  253. }
  254. 14.7 获取满足条件的查询的数目 $this->solr->search
  255. solrSearch::index('rent')->getCount();
  256. 14.8 目前网站上面使用的是 solrSearch::create('index')->index(查询的条件)
  257. 15.Yii 判断请求的来源是否是ajax
  258. Yii::app()->request->isAjaxRequest
  259. 16.Yii操作cookie
  260. //引入cookie
  261. 设置cookie
  262. $cookie = new CHttpCookie('mycookie','this is my cookie');
  263. $cookie->expire = time()+60*60*24*30; //有限期30天
  264. Yii::app()->request->cookies['mycookie']=$cookie;
  265. 读取cookie:
  266. $cookie = Yii::app()->request->cookies['mycookie']
  267. $cookie = Yii::app()->request->getCookies();
  268. echo $cookie['mycookie']->value;
  269. 销毁cookie:
  270. $cookie = Yii::app()->request->getCookies();
  271. unset($cookie[$name]);
  272. 17.Yii操作session
  273. 设置session:
  274. Yii::app()->session['var']='value';
  275. 读取session
  276. Yii::app()->session['var'];
  277. 移除session:
  278. unset(Yii::app()->session['var']);
  279. 17.通过对象的方式来查询对应的数据库的
  280. //一定要注意的是排序的问题
  281. IpAddressLogin::model()->findAllByAttributes(
  282. array(
  283. array('<>','id',10),
  284. 'user_id' => Yii::app()->user->id,
  285. 'type' => 'user'
  286. ),
  287. array(
  288. 'order' => 'date desc',
  289. 'limit' => '15, 10',
  290. ));
  291. 1.查找到的是数据集合的有
  292. Admin::model()->findAll($condition,$params); 该方法是根据一个条件查询一个集合,如: findAll("username=:name",array(":name"=>$username));
  293. Admin::model()->findAllByPk($postIDs,$condition,$params) 该方法是根据主键查询一个集合,可以使用多个主键findAllByPk(array(1,2));
  294. Admin::model()->findAllByAttributes($attributes,$condition,$params); 该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面
  295. Admin::model()->findAllBySql($sql,$params) 该方法是根据SQL语句查询一个数组
  296. 2.根据条件查找到对象的
  297. Admin::model()->findByPk($postID,$condition,$params); 根据主键查询出一个对象,
  298. Admin::model()->find($condition,$params); 根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据,
  299. Admin::model()->findByAttributes 该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,他查询的也是第一条数据
  300. Admin::model()->findBySql 该方法是根据SQL语句查询一组数据,他查询的也是第一条数据
  301. 3.拼接的查询方式(拼一个获得SQL的方法,在根据find查询出一个对象 )
  302. $criteria=new CDbCriteria;
  303. $criteria->select='username'; // only select the 'title' column
  304. $criteria->condition='username=:username';
  305. $criteria->params=array(':username=>'admin');
  306. $post=Post::model()->find($criteria);
  307. 4.统计个数常用的一些方法
  308. $count = UserFavorites::model()->count("userid=" . $userid . " and type=6 ");//返回统计条数
  309. $n=Post::model()->count($condition,$params); 该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字
  310. $n=Post::model()->countBySql($sql,$params); 该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字
  311. $exists=Post::model()->exists($condition,$params) 该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
  312. $sql = "select count(pid) as num from {{forum_post}}
  313. where tid=$tid and invisible=0 and first=0 ";
  314. $data['count'] = Yii::app()->bbs->createCommand($sql)->queryScalar();
  315. 5.删除的常用的方式
  316. Post::model()->deleteAll($condition,$params); 返回删除的条数
  317. Admin::model()->deleteByPk(1); 删除一条,返回删除的条数
  318. 6.ar查询
  319. $post=Post::model()->find(array(
  320. 'select'=>'title',
  321. 'condition'=>'postID=:postID',
  322. 'params'=>array(':postID'=>10),
  323. ));
  324. 7.获取当前控制器的名称
  325. 7.1 在当前的控制中获取控制器的名称
  326. $name=$this->getId()
  327. 在试图中获取控制器的名称
  328. $name=Yii::app()->controller->id;
  329. 7.2 获取当前动作的名
  330. 在控制器beforeAction()回调函数中获取动作名
  331. $name=$aciton->id
  332. $this->action->id
  333. 或者通过回调获得
  334. beforeAction($action)
  335. $action->getId()/$action->id
  336. 在其他地方获取动作名
  337. $name=$this->getAction->getId();
  338. 7.3 在视图中获取当前模块的id
  339. $this->module->id
  340. 常量
  341. __CLASS__ //当前控制器名 xxxController
  342. __FUNCTION__//当前方法名 actionxxx
  343. 8.Yii框架自带的验证的方法
  344. 方法一:
  345. $model2 = new Subemail();
  346. CActiveForm::validate($model2);
  347. 方法二:
  348. $model2->vilidate() && $model->save()
  349. 19. Common::authcode($pwd."\t"."0"."\t"."0", 'ENCODE',Yii::app()->params['authkey']) #dz 加密的一个过程
  350. Common::authcode($str,'DECODE',Yii::app()->params['authkey']) #dz 解密的一个过程
  351. 20.抛出提示
  352. 控制器里直接抛出错误提示
  353. throw new CHttpException(404, '参数有误');
  354. //判断是否是ajax请求
  355. Yii::app()->request->isAjaxRequest
  356. //实例化一个空对象
  357. $std = new stdClass();
  358. $std->code = 201;
  359. $std->msg = '参数错误';
  360. //控制下定义模板继承文件
  361. public $layout='//layouts/h5column';
  362. 指定某视图不继承模板
  363. $this->layout=false;
  364. 21获取params中的参数
  365. Yii::app()->params[$name];
  366. 1.延迟加载的功能(类的延迟加载)
  367. 2.类的印色
  368. ($vf<>'') && $keyword .=' keywords LIKE "%'.$floorList[$vf]['floors_name'].'%" OR ';
  369. 等同于
  370. if($vf<>''){$keyword .=' keywords LIKE "%'.$floorList[$vf]['floors_name'].'%" OR ';}
  371. 获取对象方法
  372. get_class_methods()
  373. get_class_vars
  374. get_object_vars
  375. print_r(get_class_methods(Yii::app()->user));


评论 0

发表评论

Top