Php URI路由问题,因此链接不会';不要使用CodeIgniter
我是CodeIgniter的新手。我有一个带有链接的主页。我知道如何将主页链接到另一个页面,但我认为我在routes.php中做错了什么 我看了教程,但还是找不到问题。我试着用不同的方式写路线。有人能帮我吗 home.php视图Php URI路由问题,因此链接不会';不要使用CodeIgniter,php,codeigniter,controller,url-routing,href,Php,Codeigniter,Controller,Url Routing,Href,我是CodeIgniter的新手。我有一个带有链接的主页。我知道如何将主页链接到另一个页面,但我认为我在routes.php中做错了什么 我看了教程,但还是找不到问题。我试着用不同的方式写路线。有人能帮我吗 home.php视图 <ul> <li><a href="home.php">Homepagina</a></li> <li><a href="about.php"&g
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
class Pages extends CI_Controller {
public function view($home ='home')
{
$this->load->helper('html');
$this->load->helper('url');
if (! file_exists(APPPATH.'views/pages/'.$home.'.php'))
{
show_404();
}
$data['title'] = ucfirst($home);
$this->load->view('templates/header',$data);
$this->load->view('templates/slideshow', $data);
$this->load->view('pages/'.$home, $data);
$this->load->view('templates/footer',$data);
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
}
}
routes.php
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
class Pages extends CI_Controller {
public function view($home ='home')
{
$this->load->helper('html');
$this->load->helper('url');
if (! file_exists(APPPATH.'views/pages/'.$home.'.php'))
{
show_404();
}
$data['title'] = ucfirst($home);
$this->load->view('templates/header',$data);
$this->load->view('templates/slideshow', $data);
$this->load->view('pages/'.$home, $data);
$this->load->view('templates/footer',$data);
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
登录控制器
class Login extends CI_Controller {
public function view($login ='login')
{
$this->load->helper('html');
$this->load->helper('url');
if (! file_exists(APPPATH.'views/pages/'.$login.'.php'))
{
show_404();
}
$data['title'] = ucfirst($login);
$this->load->view('templates/header',$data);
$this->load->view('pages/'.$login, $data);
$this->load->view('templates/footer',$data);
}
提前感谢您的帮助 扩展具有构造函数的类时,需要从扩展它的类调用该构造函数。。。即
class Controller_name extends CI_Controller {
public function __construct(){
parent::__construct(); // Call the CI_Controller __construct();
}
请注意_uu实际上是两个下划线,但在此处仅显示一行
用你的路线
routes.php
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
class Pages extends CI_Controller {
public function view($home ='home')
{
$this->load->helper('html');
$this->load->helper('url');
if (! file_exists(APPPATH.'views/pages/'.$home.'.php'))
{
show_404();
}
$data['title'] = ucfirst($home);
$this->load->view('templates/header',$data);
$this->load->view('templates/slideshow', $data);
$this->load->view('pages/'.$home, $data);
$this->load->view('templates/footer',$data);
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
请记住,CI URL的格式为domainname.com/controller/method
如果您不提供控制器/方法ie-just domainname.com,则默认的_控制器是浏览器将重定向到的位置。使用默认的控制器路径,您将重定向到页面控制器并访问视图方法。按照你的代码去做应该没问题
如果您访问domainname.com/login作为您的url,那么您的登录路径也应该是正常的-这将被发送到您的登录控制器、查看方法并以页面名的形式传入login
home.php
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
class Pages extends CI_Controller {
public function view($home ='home')
{
$this->load->helper('html');
$this->load->helper('url');
if (! file_exists(APPPATH.'views/pages/'.$home.'.php'))
{
show_404();
}
$data['title'] = ucfirst($home);
$this->load->view('templates/header',$data);
$this->load->view('templates/slideshow', $data);
$this->load->view('pages/'.$home, $data);
$this->load->view('templates/footer',$data);
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
$route['default_controller'] ='pages/view';
$route['login'] = 'login/view/login';
<ul>
<li><a href="home.php">Homepagina</a></li>
<li><a href="about.php">Over</a></li>
<li><a href="<?php echo site_url('login/login'); ?>">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>
<li><a href="<?php echo site_url('myprofile/myuserprofile'); ?>">Profiel</a></li>
<li><a href="matches.php">Matches</a></li>
<li><a href="config.php">Config</a></li>
</ul>
通过指向home.php的链接,您可能希望创建一个名为home.php的控制器,并定义index()方法。所以改变
<a href="home.php">Homepagina</a>
到
然后链接变成domainname.com/home-它指向您的主页控制器和索引方法
然后我们来讨论这个问题
<a href="<?php echo site_url('login/login');
只需调用控制器和方法
<li><a href="login/login">Inloggen</a></li>
如果不起作用
<li><a href="index.php/login/login">Inloggen</a></li>
试试这个
<li><a href="index.php/login/login">Inloggen</a></li>
如果可行,可以删除index.php。
按照本文档删除如果您不使用url的完整路径,即从
http[s]://
开始,则始终使用前斜杠智能开始链接:
<li><a href="/pages/about">Over</a></li>
另外,在练习静态页面教程时,请注意docs的Loader lybrary页面,这样您就可以找到如何将所有数据传递到所有查看页面,让其查看文件,在这种情况下,您不需要在此处设置第二个参数:
$this->load->vars($data);
$this->load->view('templates/header');
$this->load->view('templates/slideshow');
$this->load->view('pages/'.$home);
$this->load->view('templates/footer');
所有$data数组将被传递到所有视图文件,您将能够输出这些文件。
也许你会觉得它有用一次 谢谢你的回答!我解决了它:它必须是index.php/loginthak you以获得答案和额外信息!:)谢谢你的回答!我解决了它,它必须是index.php/login