Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CodeIgniter模型中返回POST数据?_Codeigniter - Fatal编程技术网

在CodeIgniter模型中返回POST数据?

在CodeIgniter模型中返回POST数据?,codeigniter,Codeigniter,我试图从表单中获取数据,并将其发送到下面的模型,以便将数据输入到数据库表users中 我的控制器(类登录)具有以下代码: 类登录扩展CI_控制器{ function __construct() { parent::__construct(); $this->load->model('Login_model'); } public function index() { $data = array( 'gid' => $th

我试图从表单中获取数据,并将其发送到下面的模型,以便将数据输入到数据库表users中

我的控制器(类登录)具有以下代码:

类登录扩展CI_控制器{

function __construct()
{
    parent::__construct();
    $this->load->model('Login_model');      
 }

 public function index()
 {
    $data = array(
    'gid'   =>  $this->input->post('gid'),
    'name'  =>  $this->input->post('name'),
    'pic'   =>  $this->input->post('pic'),
    'link'  =>  $this->input->post('link')
);
var_dump($data);
$this->Login_model->insert_entry($data);
 }
}

在我的模型中,我有以下内容:

class Login_model extends CI_Model {

   public function __construct()
   {
      parent::__construct();
      $this->load->database();
   }

   function insert_entry($data)
   {
       $this->db->insert('users', $data);
    }
}
$this->input->get();
$data = array(
    'gid'   =>  $this->input->get('gid'),
    'name'  =>  $this->input->get('name'),
    'pic'   =>  $this->input->get('pic'),
    'link'  =>  $this->input->get('link')
);
我目前的问题是,我认为我的模型没有正确地获取数据。我一直在使用URL:

domain.com/login?field1=John&field2=Dave&field3=Barry&field4=Ted

如果我进行了一次测试,var转储似乎会返回以下内容,而不是数据:

array(4) { ["gid"]=> bool(false) ["name"]=> bool(false) ["pic"]=> bool(false) ["link"]=> bool(false) }

您在这里遇到了一些问题:

  • 插入项()的第一行中有减号(-)而不是等号(=)
  • 通过URL发送的数据是GET Data(使用CI的表单_open();默认为POST)
  • 您的数据库字段和数组中的数据可能不匹配,您可能会同时发送诸如“提交”之类的无关数据

  • 您在这里遇到了一些问题:

  • 插入项()的第一行中有减号(-)而不是等号(=)
  • 通过URL发送的数据是GET Data(使用CI的表单_open();默认为POST)
  • 您的数据库字段和数组中的数据可能不匹配,您可能会同时发送诸如“提交”之类的无关数据

  • 在控制器中,您可以将POST数据作为insert_entry()函数的参数通过发送:

    $this->Login_model->insert_entry($this->input->post());
    
    在insert_entry()函数的第一行中,还有一个减号代替等号。您可以将insert_entry()函数更改为以下内容:

    function insert_entry($data) {
        $this->db->insert('users', $data);
    }
    
    注意:在尝试将数据提交到数据库之前,请记住验证此数据

    我看到的另一个问题是,您正在搜索POST数据,但URL正在发送GET数据。有多种方法可以解决这个问题,其中最简单的方法是检查GET流。您可以使用以下任一选项:

    class Login_model extends CI_Model {
    
       public function __construct()
       {
          parent::__construct();
          $this->load->database();
       }
    
       function insert_entry($data)
       {
           $this->db->insert('users', $data);
        }
    }
    
    $this->input->get();
    
    $data = array(
        'gid'   =>  $this->input->get('gid'),
        'name'  =>  $this->input->get('name'),
        'pic'   =>  $this->input->get('pic'),
        'link'  =>  $this->input->get('link')
    );
    
    或:

    第一个将检查GET数据,而第二个将检查GET和POST,从POST开始

    在控制器中,假设这些字段位于GET数据中,则可以执行以下操作:

    class Login_model extends CI_Model {
    
       public function __construct()
       {
          parent::__construct();
          $this->load->database();
       }
    
       function insert_entry($data)
       {
           $this->db->insert('users', $data);
        }
    }
    
    $this->input->get();
    
    $data = array(
        'gid'   =>  $this->input->get('gid'),
        'name'  =>  $this->input->get('name'),
        'pic'   =>  $this->input->get('pic'),
        'link'  =>  $this->input->get('link')
    );
    

    您可以在CodeIgniter文档中了解更多信息,网址为

    。在控制器中,您可以将POST数据作为insert_entry()函数的参数发送:

    $this->Login_model->insert_entry($this->input->post());
    
    在insert_entry()函数的第一行中,还有一个减号代替等号。您可以将insert_entry()函数更改为以下内容:

    function insert_entry($data) {
        $this->db->insert('users', $data);
    }
    
    注意:在尝试将数据提交到数据库之前,请记住验证此数据

    我看到的另一个问题是,您正在搜索POST数据,但URL正在发送GET数据。有多种方法可以解决这个问题,其中最简单的方法是检查GET流。您可以使用以下任一选项:

    class Login_model extends CI_Model {
    
       public function __construct()
       {
          parent::__construct();
          $this->load->database();
       }
    
       function insert_entry($data)
       {
           $this->db->insert('users', $data);
        }
    }
    
    $this->input->get();
    
    $data = array(
        'gid'   =>  $this->input->get('gid'),
        'name'  =>  $this->input->get('name'),
        'pic'   =>  $this->input->get('pic'),
        'link'  =>  $this->input->get('link')
    );
    
    或:

    第一个将检查GET数据,而第二个将检查GET和POST,从POST开始

    在控制器中,假设这些字段位于GET数据中,则可以执行以下操作:

    class Login_model extends CI_Model {
    
       public function __construct()
       {
          parent::__construct();
          $this->load->database();
       }
    
       function insert_entry($data)
       {
           $this->db->insert('users', $data);
        }
    }
    
    $this->input->get();
    
    $data = array(
        'gid'   =>  $this->input->get('gid'),
        'name'  =>  $this->input->get('name'),
        'pic'   =>  $this->input->get('pic'),
        'link'  =>  $this->input->get('link')
    );
    

    你可以在CodeIgniter文档中阅读更多关于这方面的内容,网址为

    抱歉-我更新了我的代码,因为我注意到我做错了,但后来我被难住了。看看你的第2点,这就解决了:)对不起-我更新了我的代码,因为我注意到我做错了,但是我被难倒了。看看你的第2点,这就解决了:)