当用户的输入无效时,我的$msg
不会出现在视图中。没有错误显示,只是错误消息没有出现。下面是我的控制器和视图。
登录控制器
public function index($msg = null){
$data['msg'] = $msg;
$this->load->view('login_view', $data);
}
public function process(){
$this->load->model('login_model');
$result = $this->login_model->validate();
if(!$result){
$msg = '<font color=red>Invalid username and/or password.</font><br />';
$this->index();
}else{
// if validated to member area
redirect('home');
}
}
我的login_view
<?php if(! is_null($msg)) echo $msg;?>
$this->index
有效但$msg
始终为null
,我想知道原因。
答案 0 :(得分:0)
public function index($msg = null){
$data['msg'] = $msg;
$this->load->view('login_view', $data);
}
public function process(){
$this->load->model('login_model');
$result = $this->login_model->validate();
if(!$result){
$msg = '<font color=red>Invalid username and/or password.</font><br />';
$this->index($msg);
}else{
// if validated to member area
redirect('home');
}
}
你需要传递变量,因为它不在其他函数的范围内 - 我将以另一种方式创建另一个答案,以另一种方式作为示例。 - 如果可以,尝试将HTML保留在控制器之外。
答案 1 :(得分:0)
protected $viewData = array();
public function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('login_view', $this->viewData);
}
public function process(){
$this->load->model('login_model');
if(!$result = $this->login_model->validate()){
$this->viewData['msg'] = array(
'msg' => 'Put your message Here',
'class' => 'error'
);
return $this->index();
}
redirect('home');
}
////////////////////////////////////////////
查看文件
<?php
if(isset($msg['msg'], $msg['class'])){
echo '<span class="'.$msg['class'].'" >' . $msg['msg'] . '</span>';
}
?>