CI控制器方法调用问题

时间:2017-06-09 13:33:54

标签: php codeigniter routing php-7

我在函数调用中遇到Codeigniter的奇怪问题。我创建了一个控制器名称 ErrorLog ,然后创建了一个方法 addUpdateError 。然后在视图部分我创建了一个像这样的链接(锚标记)

<a style="float:right" href="<?php echo site_url('errorLog/addUpdateError') ?>" title="Add an Error" alt="Add an Error">Add an Error</a>

我甚至尝试过这个

<a style="float:right" href="errorLog/addUpdateError" title="Add an Error" alt="Add an Error">Add an Error</a>

这个也是

<a style="float:right" href="<?php echo base_url(); ?>errorLog/addUpdateError" title="Add an Error" alt="Add an Error">Add an Error</a>

浏览器中的网址为 http://localhost/projectName/errorLog/addUpdateError ,我认为它有效。

当我点击这个锚标记时,它会给我这个错误

enter image description here

默认控制器正在正确加载,但之后如果我导航到任何地方都无法正常工作。我在 config.php 中正确设置了 base_url ,并且还将 index_page 设置为空白。我已经尝试了所有可能的方法并在Google上搜索。 我甚至尝试在欢迎控制器中使用 CodeIgniter-2.2.6 进行Codeigniter全新设置,问题仍然出现。

目前我正在使用 PHP 7和COdeigniter 3以及Ubuntu 16.04 我只是猜测这个问题可能是因为 PHP 7

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的问题是由.htaccess文件引起的。

尝试以下步骤,

像这样设置配置文件(application/config/config.php),

$config['index_page'] = '';

之后,使用以下代码更改位于项目根文件夹中的.htaccess文件,而不是在应用程序文件夹中。

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1