我正在学习CodeIgniter,因此对于该平台我还是很陌生。我有以下问题:
我创建了一个名为admin
的控制器;
然后我将路径添加到路由文件中,如下所示:
$route[admin/dashboard] = 'admin/dashboard
;
控制器
class Admin extends CI_Controller {
public function dashboard($page ='dashboard'){
if(!file_exists(APPPATH.'/views/pages/'.$page.'.php')){
echo 'error';
show_404();
}
//check if Admin
$data['isAdmin'] = $this->admin_model->isAdmin($this->session->userID);
var_dump($data['isAdmin']);
$data['title'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
routes.php
#ADMIN
$route['admin/dashboard'] = 'admin/dashboard'; //ROUTE FOR ADMIN DASHBOARD
#USERS
$route['users']= 'users';
$route['users/index'] = 'users/index';
$route['users/login'] ='users/login';
$route['users/dashboard'] ='users/dashboard';
$route['users/profile'] = 'users/profile';
$route['users/userpicks/(:any)'] = 'users/userpicks/$1';
#PAGES
$route['pages/index'] = 'pages/index';
$route['pages/user_data_submit'] = 'pages/user_data_submit';
$route['(:any)'] = 'pages/index/$1';
$route['default_controller'] = 'pages/index';
观看次数
admin
------- dashboard.php
Config.php
$config['base_url'] = 'http://mysite';
问题/问题
当我尝试访问http://mysite/admin/dashboard
时出现404错误
追踪路线会产生以下问题,我觉得很奇怪。从下面看,我相信问题在于routes.php
的配置...?
调试-2018-06-26 08:53:45->启用UTF-8支持的调试-
2018-06-26 08:53:45->客户端发送:仪表板调试-2018-06-26
08:53:45->找到路线:(:any)->页面/索引/ $ 1调试-
2018-06-26 08:53:45->重定向到:仪表板->
pages / index / dashboard调试-2018-06-26 08:53:45->全局POST,GET
和COOKIE数据已消毒DEBUG-2018-06-26 08:53:45->会话:
“ sess_save_path”为空;使用来自
的“ session.save_path”值php.ini。错误-2018-06-26 08:53:45->找不到404页面:
通过查看以上http://mysite/admin/dashboard
,将其重定向到
找到路线:(:any)->页面/索引/ $ 1调试
我发现这很奇怪,因为我已经“硬编码”了路由并将其放置在routes.php
的最上端,但是由于某种原因而没有被执行...?
任何输入和/或帮助表示赞赏。
答案 0 :(得分:0)
$route['admin'] = "admin/dashboard";
$route['default_controller'] = "pages/index";
(这意味着路径是controller-> pages-> index.php)只需向您确认即可。
还有一种情况可能是由于htacess.php文件
将路线更改为:
http://mysite/index.php/admin/dashboard
答案 1 :(得分:0)
为简单起见,删除定义的路由,无需在CI中定义路由。如果您拥有控制器“管理员”和操作仪表板,则只需使用URL
进行浏览。如果您没有明确删除index.php,则URL为
。 如果您在本地计算机(如XAMP)上,则URL将为
。
希望这会有所帮助
答案 2 :(得分:0)
您应在路线文件中删除
$config['index_page'] = 'index.php';
To
$config['index_page'] = '';
.htaccess文件
并在项目根文件夹中创建一个.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
此.htaccess文件代码将从网址中删除index.php
答案 3 :(得分:-1)
-首先在$ config ['base_url'] ='http://localhost/CryptoCompare/'之类的config文件夹中的config.php文件中设置基本路径。 -然后您可以使用base_url()使用此路径; -之后,您可以使用echo base_url()+'/ admin / dashboard';像这样
或仅在您定义的网址中添加“ /”,然后尝试一下,我认为这会起作用。