yii 常用一些调用 (增加中)
//除域名外的URL
Yii::app()->request->getUrl();
除域名外的首页地址
Yii::app()->user->returnUrl;
6、//除域名外的根目录地址 Yii::app()->homeUrl;
YII FRAMEWORK的COOKIE使用方法
设置cookie:
- $cookie = new CHttpCookie('mycookie','this is my cookie');
- $cookie->expire = time()+60*60*24*30; //有限期30天
- Yii::app()->request->cookies['mycookie']=$cookie;
读取cookie:
- $cookie = Yii::app()->request->getCookies();
- echo $cookie['mycookie']->value;
销毁cookie:
- $cookie = Yii::app()->request->getCookies();
- unset($cookie[$name]);
在控制器添加CSS文件或JAVASCRIPT文件
- public function init()
- {
- parent::init();
- Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my.css');
- Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/my.js');
- }
YII FRAMEWORK的用户验证与授权
yii提供了CUserIdentity类,这个类一般用于验证用户名和密码的类.继承后我们需要重写其中的authenticate()方法来实现我们自己的验证方法.具体代码如下:
- class UserIdentity extends CUserIdentity
- {
- private $_id;
- public function authenticate()
- {
- $record=User::model()->findByAttributes(array('username'=>$this->username));
- if($record===null)
- $this->errorCode=self::ERROR_USERNAME_INVALID;
- else if($record->password!==md5($this->password))
- $this->errorCode=self::ERROR_PASSWORD_INVALID;
- else
- {
- $this->_id=$record->id;
- $this->setState('title', $record->title);
- $this->errorCode=self::ERROR_NONE;
- }
- return !$this->errorCode;
- }
- public function getId()
- {
- return $this->_id;
- }
- }
在用户登陆时则调用如下代码:
// 使用提供的用户名和密码登录用户
- $identity=new UserIdentity($username,$password);
- if($identity->authenticate())
- Yii::app()->user->login($identity);
- else
- echo $identity->errorMessage;
用户退出时,则调用如下代码:
- // 注销当前用户
- Yii::app()->user->logout();
其中的user是yii的一个components.需要在protected/config/main.php中定义
- 'user'=>array(
- // enable cookie-based authentication
- 'allowAutoLogin'=>true,
- 'loginUrl' => array('site/login'),
- ),
YII FRAMEWORK中TRASACTION事务的应用
- $model=Post::model();
- $transaction=$model->dbConnection->beginTransaction();
- try
- {
- // find and save are two steps which may be intervened by another request
- // we therefore use a transaction to ensure consistency and integrity
- $post=$model->findByPk(10);
- $post->title='new post title';
- $post->save();
- $transaction->commit();
- }
- catch(Exception $e)
- {
- $transaction->rollBack();
- }
Yii Framework中截取字符串(UTF-8)的方法
Helper.PHP
- class Helper extends CController
- {
- public static function truncate_utf8_string($string, $length, $etc = '...')
- {
- $result = '';
- $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');
- $strlen = strlen($string);
- for ($i = 0; (($i < $strlen) && ($length > 0)); $i++)
- {
- if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))
- {
- if ($length < 1.0)
- {
- break;
- }
- $result .= substr($string, $i, $number);
- $length -= 1.0;
- $i += $number - 1;
- }
- else
- {
- $result .= substr($string, $i, 1);
- $length -= 0.5;
- }
- }
- $result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');
- if ($i < $strlen)
- {
- $result .= $etc;
- }
- return $result;
- }
- }
将Helper.php放进protected\components文件夹下。
使用方法:
Helper::truncate_utf8_string($content,20,false); //不显示省略号
Helper::truncate_utf8_string($content,20); //显示省略号
CBREADCRUMBS简介~俗称:面包屑
功能介绍:zii.widgets 下的CBreadcrumbs类,其继承关系: CBreadcrumbs » CWidget »
CBaseController » CComponent .源代码位置:
framework/zii/widgets/CBreadcrumbs.php
面包屑类显示一个链接列表以表明当前页面在整个网站中的位置.
由于面包屑通常会出现在网站的近乎所有的页面,此插件最好在视图的layout中进行部署.
你可以定义一个breadcrumbs属性并且在布局文件中指派给(网站)基础控制器插件,如下所示:
- $this->widget('zii.widgets.CBreadcrumbs', array(
- 'links'=>$this->breadcrumbs,
- ));
于是乎,你需要时,只需要在每个视图脚本中,指定breadcrumbs属性(就可以显示出网页导航了).
以上是官方提供的文档文件的介绍.
下面介绍视图文件中写法:
- $this->breadcrumbs=array(
- 'Users'=>array('index'),
- 'Create',
- // 形式 : 'key' =>'value' key的位置相当于最后显示出来的a标签内的名字, value则相当于a标签的href属性.
- // 'Create'表示当前页 故没有设置链接.
- );
YII FRAMEWORK中验证码的使用
1.在controller中修改:
- public function actions()
- {
- return array(
- // captcha action renders the CAPTCHA image displayed on the contact page
- 'captcha'=>array(
- 'class'=>'CCaptchaAction',
- 'backColor'=>0xFFFFFF, //背景颜色
- 'minLength'=>4, //最短为4位
- 'maxLength'=>4, //是长为4位
- 'transparent'=>true, //显示为透明
- ),
- );
- }
2.在view的form表单中添加如下代码:
- <?php if(CCaptcha::checkRequirements()): ?>
- <div class="row">
- <?php echo $form->labelEx($model,'verifyCode'); ?>
- <div>
- <?php $this->widget('CCaptcha'); ?>
- <?php echo $form->textField($model,'verifyCode'); ?>
- </div>
- <div class="hint">Please enter the letters as they are shown in the image above.
- <br/>Letters are not case-sensitive.</div>
- <?php echo $form->error($model,'verifyCode'); ?>
- </div>
- <?php endif; ?>
YII FRAMEWORK的CHTML::LINK支持锚点
CHtml::link('链接文字',array('article/view','id'=>'3','#'=>'锚名称');
CUrlManager的 createUrl,是可以支持 '#' 的!
$params = array('userid' => 100, '#' => '锚名称');
$this->createUrl($route, $params);
YII FRAMEWORK在WEB页面查看SQL语句配置
- 'components'=>array(
- 'errorHandler'=>array(
- // use 'site/error' action to display errors
- 'errorAction'=>'site/error',
- ),
- 'log'=>array(
- 'class'=>'CLogRouter',
- 'routes'=>array(
- array(
- 'class'=>'CFileLogRoute',
- 'levels'=>'error, warning',
- ),
- // 下面显示页面日志
- array(
- 'class'=>'CWebLogRoute',
- 'levels'=>'trace', //级别为trace
- 'categories'=>'system.db.*' //只显示关于数据库信息,包括数据库连接,数据库执行语句
- ),
- ),
- ),
- ),
YII FRAMEWORK打印AR结果
- $user = 模型->model()->findAll();
- foreach($user $v) {
- var_dump($v->attributes);
- }
yii 数据save后得到插入id
//得到上次插入的Insert id
$id = $post->attributes['id'];
如此很简单
yii获取ip地址
yii execute后获取insert id
yii获取get,post过来的数据
yii如何设置时区
yii如何将表单验证提示弄成中文的
yii如何获得上一页的url以返回
yii多对多关联条件
- $criteria->addInCondition('categorys.id',$in);
- $criteria->addSearchCondition('Shop.name',$keyword);$shops=Shop::model()->with(array('categorys'=>array('together'=>true)))->findAll($criteria);
yii如何防止重复提交?
yii过滤不良代码
- $purifier=new CHtmlPurifier;
- $purifier->options=array('HTML.Allowed'=>'div');
- $content=$purifier->purify($content);
- <?php $this->beginWidget('CHtmlPurifier'); ?>
- ...display user-entered content here...
- <?php $this->endWidget(); ?>
显示yii的sql语句查询条数和时间
- array(
- 'class'=>'CProfileLogRoute',
- 'levels'=>'error, warning',
- )
Yii多数据库操作
......
'components'=>array(
'db'=>....// 主链接
'db1'=>...// 从连接1
'db2'=>...// 从连接2
)
......操作在代码里,可以通过Yii::app()->db1和Yii::app()->db2获得两个从连接。高级操作更高级(自动)的主从数据库功能将在1.1实现。
yii 常用一些调用 (增加中)的更多相关文章
- yii常用操作数据
yii常用操作数据.php <?php defined('YII_DEBUG') or define('YII_DEBUG', true); //当在调试模式下,应用会保留更多日志信息,如果抛出 ...
- PL/SQL --> 动态SQL调用包中函数或过程
动态SQL主要是用于针对不同的条件或查询任务来生成不同的SQL语句.最常用的方法是直接使用EXECUTE IMMEDIATE来执行动态SQL语句字符串或字符串变量.但是对于系统自定义的包或用户自定的包 ...
- yii 常用路径
yii::app()->homeurl //主页的网址 yii系统变量. //得到proteced目录的物理路径 Yii::app()->basePath; 调用YII框架中jquery: ...
- 在VS2012中采用C++中调用DLL中的函数 (4)
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
- 在C++中调用DLL中的函数 (3)
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
- Unity SLua 如何调用Unity中C#方法
1.原理 就是通常在Lua框架中所说的,开放一个C#的web接口,或者叫做在Slua框架中注册函数. 2.作用 在Lua中调用C#中的方法,这个是在做热更新中很常用的一种方法,无论是slua,还是lu ...
- python: 面向对象:类和对象调用类中的变量和方法
一. 面向对象初识 我们在生活中做事都是面向过程的,前面实现一些基本逻辑功能代码也是用面向过程的语句实现的,后来学了函数,把这些功能又装到了函数里.但用面向过程的方法去写程序,只能实现一个功能,我们要 ...
- python常用模块-调用系统命令模块(subprocess)
python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...
- 【原创】在VS2012中采用C++中调用DLL中的函数(4)
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
随机推荐
- Word,Excel,PowerPoint协作实用功能
Word,Excel,PowerPoint协作实用功能 纯手打,可能有错别字,使用的版本是office2013 转载请注明出处,谢谢 将Word表格复制到Excel中 点击Word表格左上角的按钮-- ...
- NSObject头文件解析 / 消息机制 / Runtime解读 (一)
NSObject头文件解析 当我们需要自定义类都会创建一个NSObject子类, 比如: #import <Foundation/Foundation.h> @interface Clas ...
- 解决Ubuntu 16.04 软件中心闪退
就是上面这个Ubuntu软件中心,类似如应用市场,今天不知怎么回事竟然抽风了,打开之后几秒就闪退了,导致我安装sublime一致失败,百度之后才知道这是16.04版本的一个毛病,按照我的性格,手机软件 ...
- [html5] 学习笔记-html5音频视频
HTML5 最大的新特色之一就是支持音频和视频.在 HTML5 之前,我们必须使用插件如 Silverlight 或 Flash 来实现这些功能.在 HTML5 中,可以直接使用新标签< au ...
- Python系列之heapq内置模块
heapq 是 python 的内置模块,源码位于 Lib/heapq.py ,该模块提供了基于堆的优先排序算法. 堆的逻辑结构就是完全二叉树,并且二叉树中父节点的值小于等于该节点的所有子节点的值.这 ...
- C-Swipe Mobile 一个适用于Vue2.x的移动端轮播组件
近期在做的一个Vue2项目里需要一个可以滑动的轮播组件,但是又因为现有的传统轮播库功能过于繁琐和笨重.因此自己写了一个针对于Vue2.x的轻型轮播组件. 项目GitHub链接:C-Swipe Mobi ...
- 由Spring框架中的单例模式想到的
单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例 注:Spring源码的版本4.3.4 Spring依赖注入Bean实例默认 ...
- app集成微信支付服务端代码-php版本
1.微信支付分为两种,一种是微信公众品台的微信支付,另一种是微信开放平台的微信支付 2.上周做的是开放品台的微信支付,把遇到的问题总结一下 第一,下载官方提供的代码,解压后放到根目录下,然后认真读文档 ...
- 4105: [Thu Summer Camp 2015]平方运算
首先嘛这道题目只要知道一个东西就很容易了:所有循环的最小公约数<=60,成一条链的长度最大为11,那么我们就可以用一个很裸的方法.对于在链上的数,我们修改直接暴力找出并修改.对于在环上的数,我们 ...
- kafka c++客户端编译
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些数据通常是 ...