我几天都在倚靠Codeigniter,我想知道在Codeigniter上创建博客,但是我想到了两个问题.
我创建了表tbl_post,我存储帖子的详细信息和表结构是:
1. ID 2. Title 3. Content 4. Tags 5. Status 6. Create Time 7. Update Time 8. Author ID 9. Status
现在我想从上表创建动态帖子URL.
例如:http://www.example.com/hello-world/
导航到上面的URL后,如何获取hello-world帖子的内容?
您已注意到我没有将任何ID传递给示例URL以获取内容.任何建议,如果我传递ID而不想显示在URL字符串中?
而已.
如果你以正确的方式引导我,我会感激的.
谢谢.
代码审查
主页(我的博文列表视图)
家庭控制器:
<?PHP if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Home extends CI_Controller { public function index() { $this->load->model("HomeModel"); // Load home model $data['postData'] = $this->HomeModel->postData(); // Get posts data from postData function $this->load->view("global_header"); // Include header area $this->load->view("home",$data); $this->load->view("global_footer"); // Include footer area } }
家庭型号:
<?PHP if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class HomeModel extends CI_Model{ public function postData() { $this->db->select('tbl_post.*,tbl_user.first_name,tbl_user.last_name'); $this->db->from('tbl_post'); $this->db->join('tbl_user','tbl_post.author_id = tbl_user.id','Left Join'); $query = $this->db->get(); return $query->result(); } }
家庭观点
<?PHP for($i=0; $i<count($postData); $i++): ?> <?PHP $postID = $postData[$i]->id; $postTitle = $postData[$i]->title; ?> <a href="<?PHP echo base_url("$postID/$postTitle"); ?>"> <h2 class="post-title"> <?PHP echo $postTitle; ?> </h2> </a> </div> <hr> <?PHP endfor; ?>
现在我的URL看起来像这样:http://example.com/1/man-must-explore-and-this-is-exploration-at-its-greatest
Domain: http://example.com ID: 1 Title: man-must-explore-and-this-is-exploration-at-its-greatest
我创建了另一个视图(帖子)来显示帖子内容和帖子ID(从URL获取ID).
我走对了路吗?需要你的建议来改善我的逻辑.
回答第一个问题
原文链接:https://www.f2er.com/php/445227.htmlCodeIgnitor是oop概念框架,它使用Model View Controller.(MVC架构).
所以每次点击网站都会转到Controller.然后,只有控制器将决定显示什么或下一步做什么.
如果有3页(例如:家,产品,请联系我们),那么使用3个控制器(home =使用默认控制器,产品=使用产品,联系我们=使用联系方式).
那么您的URL将是(如果您点击产品)它显示www.test.com/product,如果您点击联系它显示www.test.com/contact.
回答第二个问题
在你的表中始终保持自动增量ID(必须).然后你可以将id传递给控制器,并可以获得你想要的数据.
<?PHP foreach ($product as $variable) // $product is data array which you send data { ?> <div class="content"> <a href="[call your controller here,in my `product`]/[*call sub function*,i use `show`]/ [*then pass here to product id*]<?PHP echo $variable['id']"></a> <div> <?PHP } ?>
所以你的网址看起来像(点击产品后,该产品的假设ID为25)www.test.com/product/show/25
然后在产品控制器中创建
public function show($id)//$id variable to assign value which coming through URL { 1. your code 2. then load view }