我想在另一个控制器中调用一个函数。例如,如果用户尝试使用不正确的参数登录,则应用程序将重定向到另一个控制器并传递变量(数组)。
class User extends Controller {
function User()
{
parent::Controller();
}
function doLogin()
{
$userData = $this->users->getAuthUserData($user,$password);
if(empty($userData)){
// this is where i need to call a function from another controller
}else{
echo 'logged in';
}
}
}
是否可以使用url helper中的redirect()函数传递变量?
答案 0 :(得分:2)
是的,你可以使用redirect('othercontroller / function /'。url_encode($ data),'location');
这应该有效。
编辑:您也可以将代码放在帮助器中。
答案 1 :(得分:0)
<?php
$array = array('foo'=>'bar', 'baz'=>'fubar', 'bar' => 'fuzz');
$json = json_encode($array);
$encoded_json= urlencode($json);
/* now pass this variable to your URL redirect)
/* on your receiving page:*/
$decoded_json= urldecode($encoded_json);
/* convert JSON string to an array and output it */
print_r(json_decode($decoded_json, true));
?>
此代码:
获取一个数组,将其转换为JSON编码的字符串。
然后我们使用$json
对url_encode
字符串进行编码。你可以通过网址传递这个。
解码此URL,然后将JSON对象解码为关联数组。
可能值得一试
答案 2 :(得分:0)
如果要从另一个控制器调用一个控制器的功能,则可以使用重定向帮助程序。
例如:
class Logout extends CI_Controller {
function index() {
session_destroy();
redirect('index.php/home/', 'refresh');
}
}
它会调用另一个控制器。