我有桌子'产品'。列是' id'和' product_name'现在,如何使用codeigniter设置这样的URL?
本地主机/产品/信息/苹果iphone-7-50064584
现在,产品名称为Apple Iphone 7,ID为50064584.如何组合它们并动态显示结果?
答案 0 :(得分:1)
本指南假设您使用的是Apache Web服务器。
第1步:删除index.php
打开/application/config/config.php
改变这个......
$config['index_page'] = 'index.php';
对此...
$config['index_page'] = '';
保存文件。
第2步:添加.htaccess文件
使用以下内容在与主index.php文件相同的目录中创建.htaccess文件...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
保存文件。
第3步:配置Apache
找到您的Apache配置文件(httpd.conf)。对我来说,它位于/etc/httpd/conf/httpd.conf
确保在加载mod_rewrite的指令之前没有注释。
例如,如果你看到这个......
#LoadModule rewrite_module modules/mod_rewrite.so
将其更改为此...
LoadModule rewrite_module modules/mod_rewrite.so
保存文件。
重启apache以使更改生效。
第4步:创建控制器
在/ application / controllers /目录中创建一个新的PHP文件,并将其命名为Products.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Products extends CI_Controller
{
public function detail($id)
{
// Retrieve The Product From The Database
$this->db->from('products');
$this->db->where('id', $id);
$query = $this->db->get();
// Product Found
if($query->num_rows() == 1)
{
$product = $query->row();
// Pass The Product Details To The Product Details View Page And Display The Page
$this->load->view('product-details', $product);
// Product Not Found
} else {
// Display 404 Page
show_404();
}
}
}
保存文件。
第6步:创建您的查看文件
在/ application / views /目录中创建一个新的PHP文件,并将其命名为product-details.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?php echo $product_name; ?></title>
</head>
<body>
<h1><?php echo $product_name; ?></h1>
<!-- Add the rest of your HTML here -->
</body>
</html>
保存文件。
第7步:设置您的路线。
将您要使用的网址映射到“产品”控制器的“详细信息”方法。
打开/application/config/routes.php
添加以下行...
$route['product/details/(:any)-(:num)'] = 'products/detail/$2';
保存文件。
在浏览器中输入以下网址:http://localhost/product/details/apple-iphone-7-50064584
瞧!
答案 1 :(得分:0)
本地主机/产品/信息/苹果iphone-7-50064584
域/应用程序的名字/控制器/方法/参数
class Details {
function show($name, $id) {
$this->load->view('hello);
}
}
会生成一个类似&#34; localhost / product / details / $ product / $ id&#34;如果您删除了&#39; index.php&#39;您的配置文件。
答案 2 :(得分:0)
对不起伙伴。看起来你的问题有点“宽泛”。
为了正确回答,我会写一个完整的教程。
你在哪里遇到问题?查询,活动记录,URI段?...