好的我有一个简单的问题我正在使用codeigniter框架工作来创建一个简单的博客。当我只设置一个控制器和一个视图时,我可以将我的数据库信息(博客卷)打印到我的视图中。当我使用模型控制器视图方法时,我失败了。
以下是我想在方法控制器视图设置中实现的内容。
我原来的观点有效:
<?php
//is there an array from your search form?
if($_GET){
$books = $this->db->get('blog');//query the blog table in the database
if($books->num_rows() < 1)//are there clients to show?
{
echo 'There are no blog post'; //error message if no post
}
else
{
foreach(result() as $row)//loop through the blog
{
echo $row->title."<br>";//display each titles info
}
}
}
?>
这是我为我的新模型
设置的内容<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Blog_Model extends CI_Model {
function get($args = null)
{
$query = $this->db->get('blog');
return $query->result();
foreach(result() as $row)//loop through the books
}
function insert($data)
{
$this->db->insert('blog', $data);
}
function update($data,$id)
{
$this->db->where("id",$id);
$this->db->update('blog', $data);
}
function delete($id)
{
$this->db->where("id",$id);
$this->db->delete('blog');
}
}
这是我的新控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Blog extends CI_Controller {
public function index()
{
$this->load->model('blog_model', 'blog');
$data['blogs'] = $this->blog->get();
$this->load->view('blog',$data);
}
}
我不知道该为我的新观点做些什么?我只是想将博客卷回到视图
答案 0 :(得分:1)
你在返回功能之后正在模型中做一个foreach。
所以你回来的就是这个:
$query->result()
您可能应该在视图中执行foreach,这样可以更好地放置,因为模型应该只返回而不是处理信息。在这种情况下,最佳位置是控制器或可以查看 - 取决于您的严格程度。
我暂时没有使用CodeIgniter,所以可以试试这个: 的控制器强>:
class Blog extends CI_Controller
{
public function index()
{
$this->load->model('blog_model', 'blog');
$data['blogs'] = $this->blog_model->get()->result();
$this->load->view('blog',$data);
}
}
查看
Here goes some text...
<?php
foreach($blogs as $post)
{
echo $post['someData'];
echo $post['someData2'];
}
?>
After all this code...
您是否要查找this(CodeIgniter Doc)。
希望这会有所帮助。尝试
答案 1 :(得分:0)
<强>控制器:强>
$data['blogs'] = $this->blog_model->get();
即使您加载模型以调用其功能,您也必须传递其名称。
<强>型号:强>
在应用查询时,必须始终拥有result()
或row()
。
希望这有助于你的努力