我想为不同的网址显示相同的内容。例如:
website.com/controllername/country/state1/dist1/
website.com/controllername/country/state2/dist2/
我希望这两个网址显示相同的内容。即使某些内容会因网址(如州和地区名称)而异。我不想为每个网址创建单独的内容/页面。我想知道它是否可以在Codeigniter中这样做?是否可以在Codeigniter中显示如上所示的URL?
答案 0 :(得分:1)
是的,可以使用Codeigniter路由,
在application/config/routes.php
粘贴以下代码并更改您使用的控制器和功能名称
$route['([a-zA-Z0-9---_%])+/([a-zA-Z0-9---_%])+/([a-zA-Z0-9---_%])'] = 'your_controller_name/your_function_name/$1/$1/$1';
答案 1 :(得分:0)
与其他框架不同,CodeIgniter没有全局模板系统。除非另有说明,否则每个控制器独立于系统控制其自身的输出,视图为FIFO。
例如,如果我们有一个全局标题:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html>
<head>
<title><?=$title?></title>
<!-- Javascript -->
<?=$javascript ?>
<!-- Stylesheets -->
<?=$css ?>
</head>
<body>
<div id="header">
<!-- Logos, menus, etc... -->
</div>
<div id="content">
和全球页脚:
</div>
<div id="footer">
<!-- Copyright, sitemap, links, etc... -->
</div>
</body>
</html>
然后我们的控制器必须看起来像
class Welcome extends Controller {
function index() {
$data['title'] = 'My title';
// Javascript, CSS, etc...
$this->load->view('header', $data);
$data = array();
// Content view data
$this->load->view('my_content_view', $data);
$data = array();
// Copyright, sitemap, links, etc...
$this->load->view('footer', $data);
}
}
答案 2 :(得分:0)
是的,您可以在路由上设置具有不同网址设置的相同页面。 有关详情,请参阅以下链接: https://www.codeigniter.com/userguide3/general/routing.html
$ route [&#39; controllername / country / state1 / dist1 /&#39;] =&#39; catalog / product_lookup&#39 ;; $ route [&#39; controllername / country / state1 / dist2 /&#39;] =&#39; catalog / product_lookup&#39;;
答案 3 :(得分:0)
改善克里希纳拉答案......
你需要 website.com/controllername/method1/st/dist/ website.com/controllername/method2/st/dist ///我已经改变了一些变量以便更好地理解,而“国家”会改变 //是主要的变化
所以在你的控制器上你只是
public function method1($st1,$st2){
$this->load->view('header');
$this->load->model('data_processing');
$data['data'] = $this->data_processing->any_model_function($st1,$st2);
$this->load->view('page_you_want',$data);
//here you choose the same view for both methods
$this->load->view('footer');
}
public function method2($st1,$st2){
$this->load->view('header');
$this->load->model('data_processing');
$data['data'] = $this->data_processing->any_model_function($st1,$st2);
$this->load->view('page_you_want',$data);
//here you choose the same view
$this->load->view('footer');
}
在Kavin Smk解释的路线配置的情况下,注意到了一个错误,而不是
'your_controller_name/your_function_name/$1/$1/$1';
它应该
'your_controller_name/your_function_name/$1/$2/$3';
嗯,总有很多方法可以做同样的事情,选择你的...... 祝你好运!