在CodeIgniter模型中返回POST数据?
我试图从表单中获取数据,并将其发送到下面的模型,以便将数据输入到数据库表users中 我的控制器(类登录)具有以下代码: 类登录扩展CI_控制器{在CodeIgniter模型中返回POST数据?,codeigniter,Codeigniter,我试图从表单中获取数据,并将其发送到下面的模型,以便将数据输入到数据库表users中 我的控制器(类登录)具有以下代码: 类登录扩展CI_控制器{ function __construct() { parent::__construct(); $this->load->model('Login_model'); } public function index() { $data = array( 'gid' => $th
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) }
您在这里遇到了一些问题:
您在这里遇到了一些问题:
在控制器中,您可以将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点,这就解决了:)