我是codeigniter的新手。我按照视频教程成功创建了登录注册系统。注册或登录后,用户会到达一个名为 members.php 的页面。
members.php 是一个视图。
我的控制器是 main.php,模型是 model-users.php。
我希望 members.php 显示/包含数据库中的内容,以便用户可以在登录或注册后阅读它?
我关注了网络上的一些资源,这些资源说不要从视图中调用控制器。如果不这样做,我怎么能成为上述行为的同谋?
谢谢
我是codeigniter的新手。我按照视频教程成功创建了登录注册系统。注册或登录后,用户会到达一个名为 members.php 的页面。
members.php 是一个视图。
我的控制器是 main.php,模型是 model-users.php。
我希望 members.php 显示/包含数据库中的内容,以便用户可以在登录或注册后阅读它?
我关注了网络上的一些资源,这些资源说不要从视图中调用控制器。如果不这样做,我怎么能成为上述行为的同谋?
谢谢
我认为CodeIgniter 文档实际上非常清晰,而且非常容易理解。不过,这里有一个示例,说明您可以如何构建您的应用程序。
控制器:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Members extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('members_model');
}
function index() {
$data['members'] = $this->members_model->get_members();
$this->load->view('header', $data);
$this->load->view('members');
$this->load->view('footer');
}
}
型号:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Members_model extends CI_Model {
function get_members() {
$query = $this->db->get('members');
return $query->result_array();
}
}
查看:
<?php
print_r($members);
要访问上述页面,您将访问http://yoursite.com/index.php/members。
您可以使用文件从 URI.htaccess
中删除段。index.php
运行控制器时会自动调用该index()
方法。
我没有任何代码示例,但是当您可以显示成员的姓名和姓氏时,我编写了一个简单的 HTML 示例。控制器:
function members(){
$members = $this->model-user->get_list(); //array of members
$this->load->view('members.php', $members); // load members in view
}
查看 members.php
<html>
<body>
<table>
<tr>
<th>Name</th>
<th>Surname</th>
</tr>
<?php foreach($members as $m): ?>
<tr>
<tr><?php echo $m['name']; ?>
<tr><?php echo $m['surname']; ?>
</tr>
<?php endforeach; ?>
<table>
</body>
</html>
模型:
function get_list() {
// query in database
return $query = $this->db->get('members'); //table name members
}
这是简短形式的简单示例。我希望你能理解。
我想我知道你的意思,这绝对不是解决这个问题的正确方法,但如果你真的必须这样做,你可以从这样的视图中调用模型。
在视图中
<div>
<?php
#You could load the model here or autoload it in config->autoload->models(i believe)
$data = $this->model_name->model_function();?>
foreach($data as $row):
echo '<pre>';
print_r($row);
echo '</pre>';
endforeach;
?>
</div>
这是我的代码示例:
意见:
<?php foreach($ecms as $i){ ?>
<tr>
<td><?php echo $i->accnum; ?></td>
<td><?php echo $i->crdnum; ?></td>
<td><?php echo $i->fname; ?></td>
<td><?php echo $i->bday; ?></td>
</tr>
<?php } ?>
模型:
function masterHide()
{
$sql =" select * from ecms";
$query = $this->db->query($sql);
return($query->num_rows() > 0) ? $query->result(): NULL;
}
控制器:
function search() {
// $this->MasterListAccess();
$this->load->model('navi_model');
$query = $this->navi_model->masterHide();
//check results or returned value of model
//print_r($query);
$data['ecms'] = $query;
$data['main_content'] = 'search';
$this->load->view('includes/template',$data);
}
首先在您的项目文件中连接数据库并在您的视图页面中连接模型页面并尝试此代码。转到查看页面并尝试此代码
看法
20
21
<?php
$get_data=$this->MyModel->get_table_data();
?>
<table class="table table-bordered">
<thead>
<tr>
<th> Name </th>
<th> Email </th>
<th> Phone No </th>
</tr>
</thead>
<tbody>
<?php foreach($get_data as $val){ ?>
<tr>
<td><?php echo $val->name; ?></td>
<td><?php echo $val->email; ?></td>
<td><?php echo $val->phone; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
模型
public function get_table_data(){ $qry=$this->db->select('*')->from('Table Name')->get()->result(); return $qry; }