gpt4 book ai didi

php - CodeIgniter 路由文件夹错误

转载 作者:可可西里 更新时间:2023-10-31 22:41:26 25 4
gpt4 key购买 nike

我有 CodeIgniter Controller 文件,放在这里

controllers/public/Pubweb.php

我想将该文件设置为我的默认 Controller ,但是当我更改默认 Controller 路由值时,它会出错。我的路线代码:

$route['default_controller'] = 'public/pubweb';

有人可以帮助我吗?

最佳答案

On CodeIgniter 3 It does not allow you to have a sub folder on $route['default_controller'] you will instead need to create a MY_Router.php file like below.

您需要在

中创建一个 MY_Router.php
application > core > MY_Router.php

这是一个 MY_Router.php 文件,应该允许您在 Codeigniter 3 中使用 $route['default_controller'] = 'public/pubweb';

<?php

class MY_Router extends CI_Router {
protected function _set_default_controller() {

if (empty($this->default_controller)) {

show_error('Unable to determine what should be displayed. A default route has not been specified in the routing file.');
}
// Is the method being specified?
if (sscanf($this->default_controller, '%[^/]/%s', $class, $method) !== 2) {
$method = 'index';
}

// This is what I added, checks if the class is a directory
if( is_dir(APPPATH.'controllers/'.$class) ) {

// Set the class as the directory

$this->set_directory($class);

// $method is the class

$class = $method;

// Re check for slash if method has been set

if (sscanf($method, '%[^/]/%s', $class, $method) !== 2) {
$method = 'index';
}
}

if ( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php')) {

// This will trigger 404 later

return;
}
$this->set_class($class);
$this->set_method($method);
// Assign routed segments, index starting from 1
$this->uri->rsegments = array(
1 => $class,
2 => $method
);
log_message('debug', 'No URI present. Default controller set.');
}
}

确保您的文件的文件名和类名首字母大写。 Pubweb.phpclass Pubweb extends CI_Controller{}

希望这对您有所帮助!

关于php - CodeIgniter 路由文件夹错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com