1.$this->redirect这里的$this是当前的controller。可能是应用程序的也
可能是模块下的
这里仅将解一下第一个参能是url,当url是一个字符串时,它会自己动跳转
如$this->redirect('/'); 会跳转到站点根,如果你的当前主机为localhost,那么他就会跳到
http://localhost/
再者$this->redirect('/books');,则会跳到http://localhost/books
在应用程序的controller中,也可以使用$this->redirect('books');
也会跳到http://localhost/books
但是当你在module中这样使用,则会出现另一种情况,当你打开urlManager,并设置了隐藏脚本文件,
输入
如果你当前的访问地址为
http://localhost/admin/default/index
当使用$this->redirect('books'); 跳转, 跳转后地址则是
http://localhost/admin/default/books
这里只是说一下,redirect的简单跳转,我个人建议,如果不是跳到其他项目,
或外站$this->redirect('http://yiibook.com');,建议都使用下面的方法
url使用数组
当url为数组时,会调用urlManager来根据路由组织跳转的路径,这种情况比较理想,而且会根据路由
的修改而改变
如果有一条路由为
'book'=>'admin/default/index'
格式为:'路由'=>'真实地址',
即指定了访问book,就相当于方问admin模型下的default控制器的index操作方法。
既然使用了路由,主要是为了让url更友好,并隐藏真实地址
那么,当想使用$this->redirect跳转到这个路由时,需要指定真实地址,如
$this->redirect(array('admin/default/index'));
这样就会跳到这个地址了,而且url显示的确是book,而当你修路由名称时,如
'books'=>'admin/default/index',或干脆去掉这个路径,都不用修改你的程序
在模块中的情况,如果你当前在admin模块的controller中,使用跳转,则可以不用写moduleId
直接使用$this->redirect(array('default/index')); 也是ok的,这样你的module也不会依赖
于moduleId了
再有如果你当前也在admin模块下的default控制器中,也可以使用
$this->redirect(array('index'));进行跳转,不依赖于控制器的名字
我们再看一下带参数的路由
'book<id:\d+>'=>'admin/default/index'
那么,url需要为这个路径传递一个参数id,如
$this->redirect(array('admin/default/index', 'id'=>1));
url格式为array('真实路径', '参数名'=>'参数值’,'参数名2'=>'参数值2', ....);
Yii中许多组件或方法都有支持这种url的格式,如CMenu等等。
2.createUrl,有$this->createUrl和Yii::app()->createUrl,
createUrl它会根据真实地址,组织成路由格式的地址
根据上面的路由,创建url
$this->createUrl('admin/default/index')
带参数情况
$this->createUrl('admin/default/index', array('id'=>1));
admin模块中,使用
$this->createUrl('default/index');或$this->create('index');
不要使用Yii::app()->createUrl,避免依赖于具体的路由
注意一下redirect与createUrl的参数区别。
[转载] http://blog.csdn.net/jimlong/article/details/8227243
分享到:
相关推荐
PHP YII 发送邮件扩展 使用方法: $mail = new YiiMailer();...$mail->setTo(Yii::app()->params['adminEmail']); $mail->setSubject('Mail subject'); $mail->setBody('Simple message'); $mail->send();
Yii::app()->user->login($identity); } else { echo $identity->errorMessage; } ``` 当用户退出时,调用`logout()`方法: ```php Yii::app()->user->logout(); ``` `Yii::app()->user` 是Yii中的一个组件,它...
D:\>cd D:\Program Files\Redis D:\Program Files\Redis> redis-cli.exe -h 127.0.0.1 -p 6379 ...$activity = Yii::$app->redis->get('activity_goods:' . $goods_id); $arr = json_decode($activity, true);
$app = $oauth->getClients($auth_params['client_id']);if($_POST){ //add your verify username and password code here; //$user_id = User::model()->getIdByUsername($_POST['username']); $oauth->setVariable...
$email=Yii::$app->request->get('email'); //数字签名 $em_1=md5($email); //邮箱发送 $mail= Yii::$app->mailer->compose(); $mail->setTo($email); $mail->setSubject("激活邮箱"); //发布可以带html标签...
根据提供的文件信息,这里主要涉及的是Apache服务器配置与虚拟主机设置。然而,关于“PHP同时修改多个属性的值”的主题并没有在给定的信息中明确体现出来。为了更好地满足您的需求,我们将围绕“PHP同时修改多个属性...
if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } return $this->render('update', [ 'model' => $model, ]); } public ...
$this->_identity = new UserIdentity($this->username, $this->password); if (!$this->_identity->authenticate()) $this->addError('password', '错误的用户名或密码。'); } ``` `rules()`方法返回的数组定义...
return Yii::$app->dbRead; } } ``` 3. 修改查询方法:在查询时使用`dbConnection()`返回的连接对象执行SQL语句。 二、分库分表 分库分表是指将一个大表分成多个小表,存储在不同的数据库中,以提高查询效率。...
yii2-用户代理 https://github.com/donatj/PhpUserAgentcomposer.json " require " : { " xj/yii2-user-agent " : " ~1.0.0 "}用法 //Avar_dump (\xj\ua\ UserAgent :: model ()-> getAttributes ());//B$ ...
$transaction = Yii::$app->db->beginTransaction(); try { // 执行一些数据库操作 // ... if (/* 所有操作成功 */) { $transaction->commit(); } else { $transaction->rollBack(); } } catch (\...
*设置: 'dbCache' => [ 'class' => 'app\components\DbCache' ], *通过 ID 查找用户(及其帖子和评论): $query = User::find() ->with(['posts', 'comments']) ->where(['user_id' => $userId]); $user = Yii::...
`Yii::$app->controller->id` 和 `Yii::$app->controller->action->id` 在控制器中获取当前控制器和动作ID的方式;以及各种组件、模型、数据库操作、分页、认证和授权等高级功能。了解并熟练掌握这些知识,将有助于...
yii的页面渲染通过在controller的action中调用$this->render($viewname...)进行,流程如下图: 在render方法中,yii会先对你的view文件进行渲染,然后如果你使用了某些layouts,则会将view渲染的输出再传入对...
密码service层进行更改,如果有问题,控制器之间复制加密和校验 加密:$hash_password = Yii::$app->security->generatePasswordHash('123456'); 校验:$bool = Yii::$app->security->validatePassword($password, $...
$this->alipay_config = \Yii::$app->params['paysdk']['wopaymobile']; } ``` 这里的 `\Yii::$app->params['paysdk']['wopaymobile']` 是从 Yii 框架的配置文件中获取的沃支付配置信息。这通常包括了沃支付接口所...
### Yii 框架中的数据库 DAO #### 一、简介 在PHP开发中,Yii作为一个高效且功能丰富的框架,提供了强大的数据库支持。其中,数据访问对象(DAO)是其核心特性之一,它基于PHP的数据对象(PDO)扩展,提供了一个...
Yii1 Db播种机Yii2 Db播种器是用于器的Yii1适配器,这是一种使用假数据快速填充数据库的工具。安装安装此扩展的首选方法是通过 。 无论运行$ composer require tebazil/yii1-db-seeder 或添加"tebazil/yii1-db-...
写在 yii2/backbone 上的 vk 应用模板 如何设置 克隆; chmod 0777 运行时; chmod 0777 网络/资产; 创建数据库; 编辑 config/db.php - 填写您的数据库设置;...\Yii:$app->user->identiry->las