php yii框架操作redis问题。可以获取到redis对象信息,但是set总是报错。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php yii框架操作redis问题。可以获取到redis对象信息,但是set总是报错。相关的知识,希望对你有一定的参考价值。
错误信息:"Failed to open redis DB connection (127.0.0.1:6379, database=0): 13 - Permission denied"目录权限 777,main-local配置文件redis的主机不管是localhost还是127.0.0.1都不好使。。。
1.在配置项中定义:12345'SESSION_TYPE' => 'Redis', //session保存类型'SESSION_PREFIX' => 'sess_', //session前缀'REDIS_HOST' => '127.0.0.1' //REDIS服务器地址'REDIS_PORT' => 6379, //REDIS连接端口号'SESSION_EXPIRE' => 3600, //SESSION过期时间
2.在Thinkphp\Library\Think\Session\Driver目录下新建Redis.class.php文件
文件内容如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162<?phpnamespace Think\Session\Driver;class Redis // Redis连接对象 private $redis;// Session过期时间 private $expire; /** * 打开方法 * @param type $path * @param type $name * @return type */ public function open($path, $name) $this->expire = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxLifetime'); $this->redis = new Redis(); return $this->redis->connect(C('REDIS_HOST'), C('REDIS_PORT')); /** * 关闭 * @return type */ public function close() return $this->redis->close(); /** * 读取 * @param string $id * @return type */ public function read($id) $id = C('SESSION_PREFIX') . $id; $data = $this->redis->get($id); return $data ? $data : ''; /** * 写入 * @param string $id * @param type $data * @return type */ public function write($id, $data) $id = C('SESSION_PREFIX') . $id; return $this->redis->set($id, $data, $this->expire); /** * 销毁 * @param string $id */ public function destroy($id) $id = C('SESSION_PREFIX') . $id; $this->redis->delete($id); /** * 垃圾回收 * @param type $maxLifeTime * @return boolean */ public function gc($maxLifeTime) return true;
memcached的方法和Redis差不多一样! 参考技术A 从错误提示来看,是权限问题。检查一下redis连接配置,有没有设置密码等,然后自己本地先连接一下redis看看能不能连接,如果能正常连接,再使用同样的配置,用Yii来连接。
Yii 框架 - 从视图到控制器动作的简单传递变量
【中文标题】Yii 框架 - 从视图到控制器动作的简单传递变量【英文标题】:Yii framework - Simple passing variable from View to Controller action 【发布时间】:2014-07-30 12:32:17 【问题描述】:我正在使用 Yii 框架 1.1.14。我想要的只是将变量(例如$var
)从视图传递到控制器(例如VideoController
)中的特定操作(例如index
)。我希望我的代码如下所示:
<a href="<?php /* Here will be route to specific controllers
action with variable $var which will be
passing by this way */
?>"></a>
所以点击此链接后,用户将被重定向到此特定操作的 url,并且在此操作内,将有可访问变量 $var
。
有没有使用 Yii 语法的简单方法?或者如果我想传递多个参数会是什么样子?
【问题讨论】:
【参考方案1】:在你看来:
<a href="
<?php
echo $this->createUrl('controller/action', array(
'var' => $var,
'var2' => $var2
));
?>">
</a>
或者
<?php
echo CHtml::link('link text', array(
'controller/action',
'var' => $var,
'var2' => $var2
));
?>
在您的控制器中:
public function actionAction($var, $var2)
//Since the createUrl as generated a $_GET parameter
// $var will be automatically set here if you put it
// In the method parameters
【讨论】:
以上是关于php yii框架操作redis问题。可以获取到redis对象信息,但是set总是报错。的主要内容,如果未能解决你的问题,请参考以下文章