Php 无法使控制器和视图为注册表一起工作
我是CodeIgniter的新手 目前,我有一个register.php(视图)和一个register.php(控制器)。php(视图)包含一个简单的表单,我试图从这个表单将数据传递给控制器,以便将其插入数据库。简单 每当我加载视图时,我似乎得到的只是与变量和函数相关的不同错误消息,以及我试图加载视图的行上的错误 我只是问:Php 无法使控制器和视图为注册表一起工作,php,codeigniter,Php,Codeigniter,我是CodeIgniter的新手 目前,我有一个register.php(视图)和一个register.php(控制器)。php(视图)包含一个简单的表单,我试图从这个表单将数据传递给控制器,以便将其插入数据库。简单 每当我加载视图时,我似乎得到的只是与变量和函数相关的不同错误消息,以及我试图加载视图的行上的错误 我只是问: 这是一起使用控制器和视图的正确方法吗 如何解决当前的问题 以下是两个文件: register.php(视图) 求职者 雇主 register.php(控制器) 您的控制
求职者
雇主
register.php(控制器)
您的控制器应如下所示:
class Users extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function createuser() {
if($this->input->post(null)){
$data = array();
$data['email'] = $this->input->post('email');
$data['name'] = $this->input->post('name');
$data['password'] = $this->input->post('password');
$data['userLevel'] = $this->input->post('userLevel');
$this->db->insert('users', $data);
}
$this->load->view('register');
}
}
您的控制器应该是这样的,而不是写
:
class Users extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function createuser() {
if($this->input->post(null)){
$data = array();
$data['email'] = $this->input->post('email');
$data['name'] = $this->input->post('name');
$data['password'] = $this->input->post('password');
$data['userLevel'] = $this->input->post('userLevel');
$this->db->insert('users', $data);
}
$this->load->view('register');
}
}
你需要这样做,而不是写
写。它是MVC,而且更清晰
看法
你需要这样做。它是MVC,而且更清晰
看法
为什么要在构造函数中定义类变量?您可能希望打开错误报告并查看错误日志。@tereško我肯定我提到过我是一个初学者,所以如果您愿意帮忙问这些问题的话。不,我现在将以正确的方式回答。当我检查错误日志时,它显示的错误与屏幕上显示的错误完全相同。意外的T_变量和预期的T_函数。错误的答案在上面的第一条注释中。为什么要在构造函数中定义类变量?您可能希望打开错误报告并查看错误日志。@tereško我肯定我提到过我是一个初学者,所以如果您愿意帮忙问这些问题的话。不,我现在将以正确的方式回答。当我检查错误日志时,它显示的错误与屏幕上显示的错误完全相同。意外的T_变量和预期的T_函数。错误的答案在上面的第一条注释中。@dianuj所以我不应该使用此方法?是的,对@dianuj,我现在已经编辑了代码。在插入正确的数据之前,请尝试使用set
方法,但在创建数据数组时,必须在插入中传递该数组call@NiloySaha+1因为您提到了Form的操作为什么在控制器中进行数据库调用?它们应该在模型中。@dianuj所以我不应该使用这个方法?是的,对@dianuj,我现在已经编辑了代码。在插入正确的数据之前,请尝试使用set
方法,但在创建数据数组时,必须在插入中传递该数组call@NiloySaha+1因为您提到了Form的操作为什么在控制器中进行数据库调用?它们应该在模型中。在我将所有这些代码插入相应的文件后,将找不到所有这些显示的页面。
您需要使用您的代码对其进行调整,因为我没有您的所有结构。我只想用这个答案展示MVC的方式以及如何添加一个简单的用户。所以只要修改你们的代码,勾选任何“;”因为我并没有测试它,所以我把它写在答案上textarea@dianuj它仍然显示404页未找到,我不确定这是怎么回事。在我将所有这些代码插入适当的文件后,所有这些显示都是页未找到。
您需要使用代码对其进行调整,因为我没有你所有的结构。我只想用这个答案展示MVC的方式以及如何添加一个简单的用户。所以只要修改你们的代码,勾选任何“;”因为我并没有测试它,所以我把它写在答案上textarea@dianuj它仍然显示404页未找到,我不确定这是怎么回事。
class Users extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function createuser() {
if($this->input->post(null)){
$data = array();
$data['email'] = $this->input->post('email');
$data['name'] = $this->input->post('name');
$data['password'] = $this->input->post('password');
$data['userLevel'] = $this->input->post('userLevel');
$this->db->insert('users', $data);
}
$this->load->view('register');
}
}
<htmL>
<body>
<?php echo form_open('controllers/createuser'); ?>
<input type="text" name="email">
<input type="text" name="name">
<input type="password" name="password">
<select id="userLevel" name="userLevel">
<option value="2">Job Seeker</option>
<option value="3">Employer</option>
</select>
<input type="submit" name="submit" value="Submit">
<?php echo form_close(); ?>
</body>
</htmL>
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends CI_Controller{
public function __construct(){
$this->load->helper('form');
}
public function createuser() {
$data['email'] = $this->input->post['email'];
$data['name'] = $this->input->post['name'];
$data['password'] = $this->input->post['password'];
$data['userLevel'] = $this->input->post['userLevel'];
if($this->input->post('submit')) {
// Here you can validate data if you want
$this->user_model->insert($data);
redirect('users/success');
}
$this->load->view('register');
}
function success() {
echo "You add user";
}
}
?>
class User_model extends CI_model {
public function __construct() {
parent:: __construct();
}
function add($data) {
$this->db->insert('users', $data); // table name users
}
}