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) 我有一个问题,使用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(当前的最新版本).
由于我的大多数页面都使用数据库,我想自动加载它以避免在每个模型中逐个加载它.我是否误解了有关加载数据库库的文档或我做错了什么?
我以前只在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则无关紧要).
但事实仍然是我没有访问输入属性...显然我没有访问输入类,所以我该怎么做?我相信如果我在控制器中做了同样的事情就可以了,但是从一个钩子?我该怎么做呢?
我知道他们是关于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/page/1/
希望这是有道理的,有人可以提供帮助.我确实尝试将base_url设置为page/1,如果第3段是空的但没有欢乐.
谢谢阅读
假设一个表单有错误,有没有办法获得一个键数组(字段名称)/值(错误消息)对?例如:
['name'] => 'The name field is required',
['age'] => 'The name must be greater than 18'
Run Code Online (Sandbox Code Playgroud)
如果没有本机方法,我将扩展表单验证库并公开受保护的属性*_error_array*.
我正在加载一个表单.叠加层具有单独的控制器和对调用叠加层的页面的操作.
在表单提交上,如果成功,我只想重新加载从中加载叠加层的引用页面.我可以加载引用页面,但它会将内容放在叠加层中.
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)
也行不通.每次在叠加层中加载.我很难过.
在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) 我在子文件夹中有一个控制器.CodeIgniter没有找到404页面.
控制器在根控制器文件夹中正常工作.控制器也可以在第1级子文件夹中正常工作.控制器在第二级子文件夹中中断.
为什么CodeIgniter 不希望您使用多个子文件夹?
例:
作品: controllers/pages/HomeController.php
破碎: controllers/pages/users/HomeController.php
我的路线是这样的:
作品: $route['default_controller'] = "pages/HomeController";
破碎: $route['default_controller'] = "pages/users/HomeController";
这是在杀我
我有什么?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) 我有一个chriskacerguis Rest服务器,它通常像API服务器那样监听客户端请求.基于客户端请求我想要仅在标头中向客户端发送/响应一些数据.
我的问题是:
我如何首先访问客户端标头?
然后
如何在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) codeigniter-2 ×10
codeigniter ×8
php ×7
.htaccess ×2
apache2 ×1
hmvc ×1
oop ×1
pageload ×1
pagination ×1
redirect ×1
reload ×1
uri ×1