Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URI路由问题,因此链接不会';不要使用CodeIgniter_Php_Codeigniter_Controller_Url Routing_Href - Fatal编程技术网

Php URI路由问题,因此链接不会';不要使用CodeIgniter

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

我是CodeIgniter的新手。我有一个带有链接的主页。我知道如何将主页链接到另一个页面,但我认为我在routes.php中做错了什么 我看了教程,但还是找不到问题。我试着用不同的方式写路线。有人能帮我吗

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>
} }

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