标签: codeigniter-2

codeigniter 2 htaccess路由差异

Codeigniter v2.0于28日发布.我只是设置了一个全新安装并尝试从url中删除index.php.我使用相同的apache站点可用配置,htaccess和codeigniter配置.

当我排除index.php时,Codeignter只加载routes.php中定义的默认控制器.

例如

这是我对相关网站的apache配置.

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName myurl.com
DocumentRoot /var/www/myurl.com
<Directory />
    Options FollowSymLinks
    AllowOverride FileInfo
</Directory>
<Directory /var/www/myurl.com>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride FileInfo
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ …
Run Code Online (Sandbox Code Playgroud)

.htaccess codeigniter apache2 codeigniter-2

2
推荐指数
1
解决办法
8652
查看次数

CodeIgniter和自动加载数据库库

我有一个问题,使用CodeIgniter连接到数据库.

在模型中,如果我这样做

$this->load->database();
Run Code Online (Sandbox Code Playgroud)

然后查询如

$query = $this->db->get('articles', 10);
Run Code Online (Sandbox Code Playgroud)

工作并返回数据.但是,当我删除load-> database行并尝试使用自动加载数据库库时

$autoload['libraries'] = array('database');
Run Code Online (Sandbox Code Playgroud)

在application/config/autoload.php中,上面的查询失败.因为它在我显式加载库时起作用,所以我的数据库连接不是问题.我正在使用CodeIgniter 2.0.2(当前的最新版本).

由于我的大多数页面都使用数据库,我想自动加载它以避免在每个模型中逐个加载它.我是否误解了有关加载数据库库的文档或我做错了什么?

codeigniter codeigniter-2

2
推荐指数
2
解决办法
4万
查看次数

每次在CodeIgniter中加载页面时运行一个函数

我以前只在Asp.Net MVC中创建了Web应用程序,你可以在BaseController上设置的"ActionFilter"中使用OnResultExecuted,每次执行一个动作方法时运行一个方法(即基本上每次有人访问任何一个页面时)应用).

我如何在CodeIgniter/PHP中做同样的事情?

编辑:

我尝试使用post_controller_constructor,根据其中一个建议,但这没有帮助:

$hook['post_controller_constructor'] = array(
                                'class'    => 'PreController',
                                'function' => 'getIp',
                                'filename' => 'preController.php',
                                'filepath' => 'hooks'
                                );
Run Code Online (Sandbox Code Playgroud)

我仍然得到Undefined属性:PreController :: $ input(我刚刚没有重命名被调用的类,如果它暂时仍然被称为PreController则无关紧要).

但事实仍然是我没有访问输入属性...显然我没有访问输入类,所以我该怎么做?我相信如果我在控制器中做了同样的事情就可以了,但是从一个钩子?我该怎么做呢?

php pageload codeigniter-2

2
推荐指数
1
解决办法
4034
查看次数

codeigniter分页第一页网址

我知道他们是关于codeigniter分页的一些问题,但从我可以说它们似乎并不相关.

仅供参考我在我的网址中使用页码,而不是索引(使用配置选项use_page_numbers)

所以我的问题是第一个链接.

我在第1页以外的页面的网址结构是:

http://www.something.com/foo/page/x

一切正常但是当我将鼠标悬停在第1页的链接上时,出现的网址是:

http://www.something.com/foo/page/

现在我知道那是因为我已经将基本网址声明为:

$config['base_url'] = $this->uri->slash_segment(1, 'both') . 'page/';
Run Code Online (Sandbox Code Playgroud)

但是,将第1页的URl作为:

http://www.something.com/foo/

要么

http://www.something.com/foo/page/1/

希望这是有道理的,有人可以提供帮助.我确实尝试将base_url设置为page/1,如果第3段是空的但没有欢乐.

谢谢阅读

php pagination uri codeigniter codeigniter-2

2
推荐指数
1
解决办法
1万
查看次数

CodeIgniter验证错误 - 如何获取key =>值对的数组?

假设一个表单有错误,有没有办法获得一个键数组(字段名称)/值(错误消息)对?例如:

['name'] => 'The name field is required',
['age'] => 'The name must be greater than 18'
Run Code Online (Sandbox Code Playgroud)

如果没有本机方法,我将扩展表单验证库并公开受保护的属性*_error_array*.

php oop codeigniter codeigniter-2

2
推荐指数
1
解决办法
1620
查看次数

如何在CodeIgniter中完全刷新页面?

我正在加载一个表单.叠加层具有单独的控制器和对调用叠加层的页面的操作.

在表单提交上,如果成功,我只想重新加载从中加载叠加层的引用页面.我可以加载引用页面,但它会将内容放在叠加层中.

header("Location: www.example.com", true, 302);
Run Code Online (Sandbox Code Playgroud)

不起作用.

像这样使用URL帮助器:

$url = $_SERVER['HTTP_REFERER'];
redirect($url);
Run Code Online (Sandbox Code Playgroud)

也行不通.每次在叠加层中加载.我很难过.

php redirect codeigniter reload codeigniter-2

2
推荐指数
1
解决办法
5万
查看次数

codeIgniter将解析器结果分配给变量

在CI中,我们都知道您可以将视图分配给变量,如:

$a = $this->load->view('theview',$data,true);
Run Code Online (Sandbox Code Playgroud)

这可能是解析器功能如下:

$a = $this->parser->parse('thetemplate',$data,true);
Run Code Online (Sandbox Code Playgroud)

php codeigniter codeigniter-2

2
推荐指数
1
解决办法
1095
查看次数

子文件夹中的CodeIgniter控制器

我在子文件夹中有一个控制器.CodeIgniter没有找到404页面.

控制器在根控制器文件夹中正常工作.控制器也可以在第1级子文件夹中正常工作.控制器在第二级子文件夹中中断.

为什么CodeIgniter 希望您使用多个子文件夹?

例:

作品: controllers/pages/HomeController.php

破碎: controllers/pages/users/HomeController.php

我的路线是这样的:

作品: $route['default_controller'] = "pages/HomeController";

破碎: $route['default_controller'] = "pages/users/HomeController";

codeigniter codeigniter-2

2
推荐指数
1
解决办法
2万
查看次数

HMVC codeigniter适用于本地服务器,但不适用于Web服务器

这是在杀我

我有什么?CI版本:2.1.4模块化扩展 - HMVC by wiredesignz一个基本的codeigniter(hmvc)项目,可以在本地服务器(mamp)中使用php 5.5.3正常工作

我将项目移动到公共Web服务器后我的问题我改变了以下的事情.--application /配置/ config.php中

$ config ['base_url'] =' http://example.com/ ';

--application /配置/ database.php中

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'newdbusername';
$db['default']['password'] = 'newdbpassword';
$db['default']['database'] = 'newdbname'; 
Run Code Online (Sandbox Code Playgroud)

--public_html /的.htaccess

RewriteEngine On
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L] …
Run Code Online (Sandbox Code Playgroud)

php .htaccess hmvc codeigniter-2 codeigniter-hmvc

2
推荐指数
1
解决办法
6773
查看次数

如何在Rest Server API中获取/设置Header?

我有一个chriskacerguis Rest服务器,它通常像API服务器那样监听客户端请求.基于客户端请求我想要仅在标头中向客户端发送/响应一些数据.

我的问题是:

  1. 我如何首先访问客户端标头?

    然后

  2. 如何在Rest Server中设置Header?

这是我向REST SERVER发送请求的方式:

function request_curl($url = NULL) {
        $utc = time();
        $post = "id=1&CustomerId=1&amount=2450&operatorName=Jondoe&operator=12";
        $header_data = array(
            "Content-Type: application/json",
            "Accept: application/json",
            "X-API-KEY:3ecbcb4e62a00d2bc58080218a4376f24a8079e1",
            "X-UTC:" . $utc,
        );
        $ch = curl_init();
        $curlOpts = array(
            CURLOPT_URL => 'http://domain.com/customapi/api/clientRequest',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => $header_data,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $post,
            CURLOPT_HEADER => 1,
        );
        curl_setopt_array($ch, $curlOpts);
        $answer = curl_exec($ch);
        // If there was an error, show it
        if (curl_error($ch)) {
            die(curl_error($ch));
        }

        curl_close($ch); …
Run Code Online (Sandbox Code Playgroud)

php codeigniter codeigniter-2 codeigniter-restserver

2
推荐指数
1
解决办法
1万
查看次数