codeigniter-将消息传递给视图


codeigniter - pass messages to view

我是codeigniter的新手。我有一个控制器users,它加载一个login视图。

class user extends CI_Controller {
    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form'));
    }
    public function login()
    {
        $this->load->model('user_images');
        $data = $this->load->model('login');
        $this->load->view('login', $data);
    }
}

login模型中,我处理所有的验证和处理。如果存在验证错误等,我返回$data['msg'] = 'some error message';,我通过$data = $this->load->model('login');将该数据传递给$this->load->view('login', $data);,并且在视图中我回显$msg。然而,在提交表单时,如果我输入了正确的凭据,我就会登录,但如果我输入一些错误的凭据,则验证错误不会传递到视图。我将这个项目从非框架环境中转移过来,所以我确信验证规则是有效的。等等。我只是不确定为什么消息没有在视图中解析。

看起来你得到了错误的

 $data = $this->load->model('login');

load->model()加载login_model并通过使其方法可用

$this->login->youMethodHere()。

如果存在验证错误或类似错误,我将返回$data['msg']="一些错误消息";我通过$data=$this->load->model('login')传递此数据;到$this->load->view('login',$data);

当您从一个方法/函数返回某个内容时,您不会返回该变量。返回变量的值。

您应该将您的方法添加到login_model中(也许应该是user_model…),并从模型中返回ex。一个数组或mysqli结果集。根据模型返回的内容,您应该设置数据。

$this->load->model('user_model');
$login_succes = $this->user_model->login($username, $password);
if( $login_success ) 
{
   $data['msg'] = 'hurrah you did it
   ...