【问题标题】:Why is my particular controller not working in CodeIgniter 3.0?为什么我的特定控制器不能在 CodeIgniter 3.0 中工作?
【发布时间】:2017-02-01 02:27:11
【问题描述】:

我是 Codeigniter 的新手,这是我第一次遇到这个问题。我有一个包含许多模型、控制器和多级视图的项目。全部,但我的一个控制器不工作。我会尽力解释我的问题。

假设我有控制器 A 和控制器 B。

从视图链接以访问每个控制器:

//This link go to Con A
<a href="<?php print base_url(); ?>ConA/user">TEST1</a>

//This link go to Con B
<a href="<?php print base_url(); ?>ConB/user2">TEST2</a>

骗子A

defined('BASEPATH') OR exit('No direct script access allowed');

class ConA extends CI_Controller
{
function __construct()
{
    parent::__construct();
    $this->load->model('MAdmin');
}

public function user()
{
   $data = array (
        'titlepage' => APP_TITLEPAGE,
        'titleapp' => 'User Management',            
        'listdept' => $this->MAdmin->get_dept(),
        'complete' => 'false',
        'contentpage' => 'admin/user');//This is the view directory. Will open user.php in myproject/application/views/admin

    $this->load->view('shared/master_app', $data);
}

骗局 B

defined('BASEPATH') OR exit('No direct script access allowed');

class ConB extends CI_Controller
{
function __construct()
{
    parent::__construct();
    $this->load->model('MAdmin');
}

public function user2()
{
   $data = array (
        'titlepage' => APP_TITLEPAGE,
        'titleapp' => 'User Management',            
        'listdept' => $this->MAdmin->get_dept(),
        'complete' => 'false',
        'contentpage' => 'admin/user');//This is the view directory. Will open user.php in myproject/application/views/admin

    $this->load->view('shared/master_app', $data);
}

视图中的shared/master_app

<div class="wrapper wrapper-content"><?php $this->load->view($contentpage); ?></div>

$config

$config['base_url']= "http://".$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

.htaccess in myproject/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /myproject
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /myproject/index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

.htaccess in myproject/application

<IfModule authz_core_module>Require all denied</IfModule>
<IfModule !authz_core_module>Deny from all</IfModule>

注意:

  • 在离线模式 (Localhost) 下一切正常
  • 从链接重定向后地址栏中的 URL 相同(命名除外)。

【问题讨论】:

  • 不是专家,但我在启动 Codeigniter 时一开始就遇到问题,在本地我的所有 URL 运行正常,但在服务器上产生问题并且没有加载。所以我发现我没有遵循 CI 的命名约定。所以你应该先检查一下。
  • 检查这个答案。 stackoverflow.com/a/16972966/5077564
  • 网址是什么?请在您的问题中添加访问 URL。
  • 我的新控制器好像没有注册。我通过合并控制器来解决我的问题。

标签: php .htaccess codeigniter


【解决方案1】:

如果您的本地主机运行良好,问题的主要原因是控制器名称为 ConAConB 。类名以 Capital 关键字开头。请重命名 Controller 类并将文件保存为 Cona.php 。也许它有效。有时这个问题会产生很多错误。首先,试试这个。此外,您的 URL 应全部为小写字母。您可以编写锚标记,例如 as ,例如:

<a href="<?php print base_url('conb/user2'); ?>">TEST2</a>

【讨论】:

    【解决方案2】:

    请在您的直播服务器的 php.ini 文件中启用 mod_rewrite

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 2015-02-08
      • 2017-05-29
      相关资源
      最近更新 更多