我在控制器中使用以下代码。但是数据['msg']没有传递给视图文件。
代码:
class Operator{
public function view ($page)
{
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = $this->getTitle($page);
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
public function create_company()
{
// some code
$data['msg1']='my mesg';
redirect('operator/view/operator_success','refresh');
}
};
当加载operator_success(查看页面)时,它显示错误消息:未定义变量'$ msg1'。
答案 0 :(得分:1)
答案 1 :(得分:0)
您在设置变量后重定向,因此您必须在会话(“flash”消息)或operator / view / operator_success控制器
上设置此消息答案 2 :(得分:0)
重定向后,您无法使用变量或数组。而是设置变量保持在会话或CodeIgniter Flash数据。
class Operator
{
public function view($page)
{
if (!file_exists('application/views/pages/' . $page . '.php')) {
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = $this->getTitle($page);
$this->load->view('templates/header', $data);
$this->load->view('pages/' . $page, $data);
$this->load->view('templates/footer', $data);
}
public function create_company()
{
// some code
$data['msg1'] = 'my mesg';
// DO THIS
$this->session->set_flashdata('msg1', 'my mesg');
// OR
$this->session->set_userdata('msg1', 'my mesg');
redirect('operator/view/operator_success', 'refresh');
}
}
重定向后,您只需拨打flashdata即可。
echo $this->session->flashdata('msg1');
// OR
echo $this->session->userdata('msg1');
您必须在使用前初始化会话,自动加载会话库或手动加载。
[1]自动加载会话库(config / autoload.php)
$autoload['libraries'] = array('session');
[2]手动加载库
$this->load->library('session');
详细了解会话和Flash数据here。希望这对你有所帮助。谢谢!