0
我想與Codeigniter建立一個論壇。傳遞多個查詢與codeigniter查看
到目前爲止,我基於創建動態新聞教程,自己顯示論壇並顯示線程。
但是,這是2個不同的網頁,我需要他們顯然將顯示一個頁面,如下所示:
Forum 1
- thread 1
- thread 2
- thread 3
Forum 2
- thread 1
- thread 2
etc.
然後下一步顯然是要顯示在一個線程所有的職位。最有可能的一些分頁正在進行。但那是爲了以後。
現在我有論壇控制器(精簡版):
<?php
class Forum extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('forum_model');
$this->lang->load('forum');
$this->lang->load('dutch');
}
public function index()
{
$data['forums'] = $this->forum_model->get_forums();
$data['title'] = $this->lang->line('title');
$data['view'] = $this->lang->line('view');
$this->load->view('templates/header', $data);
$this->load->view('forum/index', $data);
$this->load->view('templates/footer');
}
public function view($slug)
{
$data['forum_item'] = $this->forum_model->get_forums($slug);
if (empty($data['forum_item']))
{
show_404();
}
$data['title'] = $data['forum_item']['title'];
$this->load->view('templates/header', $data);
$this->load->view('forum/view', $data);
$this->load->view('templates/footer');
}
}
?>
而且forum_model(也瘦身)
<?php
class Forum_model extends CI_Model {
public function __construct()
{
$this->load->database();
}
public function get_forums($slug = FALSE)
{
if ($slug === FALSE)
{
$query= $this->db->get('forum');
return $query->result_array();
}
$query = $this->db->get_where('forum', array('slug' => $slug));
return $query->row_array();
}
public function get_threads($forumid, $limit, $offset)
{
$query = $this->db->get_where('thread', array('forumid', $forumid), $limit, $offset);
return $query->result_array();
}
}
?>
和視圖文件現在
<?php foreach ($forums as $forum_item): ?>
<h2><?=$forum_item['title']?></h2>
<div id="main">
<?=$forum_item['description']?>
</div>
<p><a href="forum/<?php echo $forum_item['slug'] ?>"><?=$view?></a></p>
<?php endforeach ?>
最後一個,我想有這樣的事情:
<?php foreach ($forums as $forum_item): ?>
<h2><?=$forum_item['title']?></h2>
<div id="main">
<?=$forum_item['description']?>
</div>
<?php foreach ($threads as $thread_item): ?>
<h2><?php echo $thread_item['title'] ?></h2>
<p><a href="thread/<?php echo $thread_item['slug'] ?>"><?=$view?></a></p>
<?php endforeach ?>
<?php endforeach ?>
但問題是,如何讓模型返回到視圖的雙重查詢,以便它包含論壇和每個論壇內的線程。
我試圖讓在get_forum功能foreach循環,但是當我這樣做:
public function get_forums($slug = FALSE)
{
if ($slug === FALSE)
{
$query= $this->db->get('forum');
foreach ($query->row_array() as $forum_item)
{
$thread_query=$this->get_threads($forum_item->forumid, 50, 0);
}
return $query->result_array();
}
$query = $this->db->get_where('forum', array('slug' => $slug));
return $query->row_array();
}
我得到的錯誤
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: models/forum_model.php
Line Number: 16
我希望任何人有一些好的建議,謝謝!
萊尼
*編輯* **
感謝您的反饋意見。
我一直百思不得其解,這似乎現在的工作:)
$query= $this->db->get('forum');
foreach ($query->result() as $forum_item)
{
$forum[$forum_item->forumid]['title']=$forum_item->title;
$thread_query=$this->db->get_where('thread', array('forumid' => $forum_item->forumid), 20, 0);
foreach ($thread_query->result() as $thread_item)
{
$forum[$forum_item->forumid]['thread'][]=$thread_item->title;
}
}
return $forum;
}
現在什麼是未來,是如何在視圖中顯示該多維數組,用foreach語句....
有什麼建議麼 ?
感謝
在forum_model的第16行上顯示您的代碼。 –
該行是:$ thread_query = $ this-> get_threads($ forum_item-> forumid,50,0); – LvS
我認爲問題在於其他功能的調用,可能做得不正確。不管怎麼說,多謝拉。這個問題現在已經解決了。 – LvS