ThinkPHP 中 和 redirect naar voren 的 区别 在 那里 呢?
首先 看 代码 注释:
naar voren:执行某个Action操作(隐含跳转)支持指定模块和延时执行
redirect: Actie跳转(URL重定向)支持指定模块和延时跳转
其次 看 代码 组织, 二者 的 行为 是 不同 的:
naar voren:
if (is_array ($ actie)) {
/ / 通过 类似 array (& $ module, $ actie) 的 方式 调用
call_user_func ($ actie);
} Else {
if (empty ($ module)) {
$ Module = defined ('C_MODULE_NAME') C_MODULE_NAME:? Module_name;
}
if (MODULE_NAME! = $ module) {
$ Class = A ($ module, $ app);
call_user_func (array (& $ class, $ actie));
} Else {
/ / 执行 当前 模块 操作
$ This-> {$ actie} ();
}
}
redirect:
if (empty ($ module)) {
$ Module = defined ('C_MODULE_NAME') C_MODULE_NAME:? Module_name;
}
$ Url = url ($ actie, $ module, $ route, $ app, $ params);
redirect ($ url, $ delay, $ msg);
redirect 则 是 通过 改变 URL 地址 栏, 直接 跳转 过去 的.
上 论坛 搜索, 发现 老大 给出 了 一些 指点, 其 说明 如下:
可以 把 vooruit 看成 是 隐含 跳转, rediret 是 直接 跳转.
redirect是会改变url,跳过去执行另外的操作
例外 论坛 里 有 位 兄弟 已经 给出 了 vooruit 的 用法:
原来 vooruit 是 Action 基 类 的 一个 操作 Actie:: forward ();
有 4 个 参数, (1 = 目标 操作, 2 = 目标 模块, 3 = 目标 项目, 4 = 是否 结束, 5 = 转 前 等待 秒数)
实例:
比如 现有 2 个 项目 myApp1 和 myApp2
目标: 从 myApp1 项目 的 Index 模块 index 操作 (IndexAction:: index ()) 跳转 到 myApp2 的 IndexAction:: index ()
在 myApp1 IndexAction:: index () (即 这个 方法 里)
{里面 $ this-> vooruit ('index', 'Index', 'myApp2', false, 5);}
注意 第 2 个 参数 的 的 Index i 是 大写 (表示 模块)
