Php CodeIgniter在视图中加载两个控制器功能
我正在CodeIgniter中创建一个简单的待办事项列表,因为我刚刚了解了它 我有一个个人资料页面,应该显示用户的详细信息+他检查要做的所有项目 这是我目前的看法Php CodeIgniter在视图中加载两个控制器功能,php,codeigniter,Php,Codeigniter,我正在CodeIgniter中创建一个简单的待办事项列表,因为我刚刚了解了它 我有一个个人资料页面,应该显示用户的详细信息+他检查要做的所有项目 这是我目前的看法 <div class="profile_header"> <?php foreach ($users as $user) { ?> <h4><?php echo $user['name']; ?></h4> </div> 还有我
<div class="profile_header">
<?php foreach ($users as $user) { ?>
<h4><?php echo $user['name']; ?></h4>
</div>
还有我的模特
public function getUserInfo(){
$user_email = $this->session->userdata('email');
$query = $this->db->get_where('users', array('email' => $user_email));
return $query->result_array();
}
现在您可以看到,我从user表中选择了用户信息,并使用index controller函数将其发送到视图。现在,如果我想从
列表任务
表中获取所有任务
,并将其显示在页面上,我假设我必须编写一个新的模型函数,并在我的控制器中用一个新函数调用它,比如getUserTasks
,但我如何将它们发送到视图?您只需向$data
数组添加另一个元素即可
所以你的控制器看起来像这样:
public function index(){
$this->load->model('model_users');
$query = $this->model_users->getUserInfo();
$data['users'] = null;
if($query){
$data['users'] = $query;
}
// Load tasks (create a new method in your model)
$data['tasks'] = $this->model_users->getUserTasks();
$this->load->view('profile/profile', $data);
}
您只需将另一个元素添加到
$data
数组中
所以你的控制器看起来像这样:
public function index(){
$this->load->model('model_users');
$query = $this->model_users->getUserInfo();
$data['users'] = null;
if($query){
$data['users'] = $query;
}
// Load tasks (create a new method in your model)
$data['tasks'] = $this->model_users->getUserTasks();
$this->load->view('profile/profile', $data);
}
首先,我强烈建议您创建两个模型,名称分别为用户和任务 在用户模型中,只需编写有关用户和用户表的代码
<?php
class User_model extends CI_Model {
function __construct() {
parent::__construct();
}
function getUserInfo(){ /*Fetch your users data*/ }
}
?>
Codeigniter和其他框架的存在便于编码和调试。如果您将所有功能组合在一个模型中,您无法轻松跟踪它们,并且在项目结束时,您将远离面向对象。首先,我强烈建议您创建两个名为用户和任务的模型 在用户模型中,只需编写有关用户和用户表的代码
<?php
class User_model extends CI_Model {
function __construct() {
parent::__construct();
}
function getUserInfo(){ /*Fetch your users data*/ }
}
?>
Codeigniter和其他框架的存在便于编码和调试。如果您将所有功能组合在一个模型中,您无法轻松跟踪它们,并且在项目结束时,您将远离面向对象。您没有同时使用CodeIgniter的版本2和版本3。请不要标记垃圾邮件。已编辑。您没有同时使用CodeIgniter的版本2和版本3。请不要标记垃圾邮件。编辑。
public function index(){
$this->load->model('User_model');
$this->load->model('Tasks_model');
$queryOfUsers = $this->user_model->getUserInfo();
$queryOfTasks = $this->tasks_model->getTasks();
//manage/edit your data comes from database as you did above.
//put it in data and send to view.
$this->load->view('profile/profile', $data);
}