yii自定义日志格式(加入用户ID,IP前缀)

RT,yii中有比较全面的日志系统设计。要自定义日志输出,只要继承LogFilter类,覆盖/重写/自定义相关方法即可。 这里用“实现每条日志加入用户ID,IP前缀”功能为例。 1.思路:自定义LogFilter类继承CLogFilter类,重写format方法 2.代码: –自定义类LXDefaultLogFilter class LXDefaultLogFilter extends CLogFilter { public $prefixClientIp = true; public »

yii中登录后跳转回登录前请求的页面

当我们请求一个经过权限控制的请求不通过时,会跳转到一个地方请求权限,请求结束后需要跳转回之前的页面。比如我们请求一个需要登录的action,会被跳转到login页面,我们希望登录成功后跳转到我们之前希望去的action页面。要实现这个,只需要在login之后,执行以下这句即可: Yii:app()->getRequest()-redirect(Yii::app()->user->getReturnUrl()); 为什么呢?因为在请求一个需要登录的aciton的跳转到登录页面之前,yii会把当前请求的url存到user对象的returnUrl属性中,方便后面的跳转。有代码为证(来自Yii源码): //先遭到CAccessControllFilter拦截, »

Bob on yii

yii在console中normalizeUrl/createUrl返回文件路径的问题

在yii中,有时候会调用CHtml的normalizeUrl去生成一个url。调用它的好处是当配置文件中的urlManager中url的映射的rules发生变化时,它也会自动发生变化。但如果在console中你调用同样的方法,得到的却是类似“项目protect绝对路径/xxxxx/xxx.html”,而不是你希望的http:/www.yyyy.com/xxxx/xxx.html这样的结果。原因很简单因为调用console是本地调用,而不是一个http请求,自然就没有host信息。所以它只能返回给你一个路径。我在网上搜索到的解决办法大概是在console的配置文件里声明request的配置信息。但感觉修改配置文件的方式不太好,影响全局,不知道会不会对应用的其它地方造成影响。我的办法是, »

Bob on yii