如何获得控制器的模型值?

时间:2016-10-12 23:25:04

标签: php mysql codeigniter codeigniter-3

我正在使用codeigniter 3.1。

我想通过模型传递发布的数据,但要通过登录我需要获取控制器的模型值吗?

如何将模型值提供给控制器?

控制器

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller 
{
    public function __construct() 
    {
         parent::__construct();
         $this->load->model("user_login");
    }

    public function index()
    {

        $post = $this->input->post("post", true);

        if ($this->user_login->check($post)) {
            if ($this->user_login->logins == "pass") {  
                echo "valid";
            } else {
                echo "Invalid";
            }
        }
    }
} 
?>

模型

<?php

class User_Login extends CI_Model 
{
    var $logins=false;

    public function check($post) 
    {
        $results = $this->db->where('username', $post)
                            ->get('users');

        if($results->num_rows() > 0){
            $this->logins = "pass";
        } else {
            $this->logins = "fail";
        }
    }
}
?>

2 个答案:

答案 0 :(得分:2)

控制器
    

class Login extends CI_Controller 
{
    public function __construct() 
    {
        parent::__construct();
        $this->load->model("user_login");
    }

    public function index()
    {

       $post = $this->input->post("post", true);

       if ($this->user_login->check($post)==true) {
          echo "valid";
       }
       else{
          echo "invalid";
       }
   }
} 
?>

模态

 <?php

 class User_Login extends CI_Model 
 {
    var $logins=false;

    public function check($post) 
    {
       $results = $this->db->where('username', $post)
                        ->get('users');

       if($results->num_rows() > 0){
          return true;
      } else {
          return false;
      }
   }
 }
?>

答案 1 :(得分:1)

1)首先,如果要使用任何公共变量,则不需要使用var。只需写下$logins=false;

即可

2)接下来,您应该从模型中检查此类事物。与return "pass"return "fail"

相同

3)之后当你从控制器检查它时,你可以将这个返回数据保存到这个变量$return_value = $this->user_login->check($post)。最后,它可能就像下面的代码 -

 if ($return_value) {
    if ($return_value == "pass") {   
    echo "valid";
   } else {
    echo "Invalid";
   }
}