我正在使用codeigniter开发我们的应用程序.我试图使用base_url()函数,但它显示空结果.我通过自动加载文件使用了autoload helper,但是它似乎也没有用.我也定义了基本常量,但都是徒劳的.请帮忙.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="<?php echo base_url();?>/css/template/default.css" type="text/css" />
<script type="text/javascript">
//<![CDATA[
base_url = '<?= base_url();?>';
//]]>
</script>
</head>
Run Code Online (Sandbox Code Playgroud) CodeIgniter数据库配置中的一个参数如下
['pconnect'] TRUE/FALSE - Whether to use a persistent connection
Run Code Online (Sandbox Code Playgroud)
你建议我把它设置为什么?
如果我将其设置为FALSE,是否会有重大的性能影响?
将其设置为TRUE会产生哪些潜在问题?
我刚刚继承了一个项目,因为最后一个开发人员离开了 该项目由Code Igniter构建.我之前从未使用Code Igniter.
我快速浏览一下代码,然后在控制器中看到数据库调用,如下所示:
$dbResult = $this->db->query("SELECT * FROM users WHERE username = '".$_POST['user_name']."'");
Run Code Online (Sandbox Code Playgroud)
或者这样的电话:
$dbResult = $this->db->query("SELECT * FROM users WHERE username = '".$this->input->post('username')."'");
Run Code Online (Sandbox Code Playgroud)
代码点火器是否会自动清理这些查询以防止sql注入?
任何人都可以告诉我为什么我的重定向助手不能像我期望的那样工作吗?我正在尝试重定向到我的主控制器的索引方法,但它需要我www.mysite.com/index/provider1/何时应该路由到www.mysite.com/provider1.这对任何人都有意义吗?我在配置中的索引页面设置为空白,虽然我不认为这是问题.有没有人就如何解决这个问题提出建议?提前致谢!
控制器:
if($provider == '') {
redirect('/index/provider1/', 'location');
}
Run Code Online (Sandbox Code Playgroud)
.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^(index\.php|files|images|js|css|robots\.txt|favicon\.ico)
RewriteCond %{HTTP_HOST} ^mysite.com/ttnf/
RewriteRule (.*) http://www.mysite.com/ttnf/$1 [R=301,L]
RewriteBase /ttnf/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
php_flag display_errors On
Run Code Online (Sandbox Code Playgroud) 我有以下php-codeigniter脚本,它尝试使用活动记录语法递增记录的字段:
$data = array('votes' => '(votes + 1)');
$this->db->where('id', $post['identifier']);
$this->db->update('users', $data);
Run Code Online (Sandbox Code Playgroud)
这会产生以下SQL:
"UPDATE用户SET投票= '(votes + 1)' WHEREID = '44'"
哪个不运行,但是这个SQL确实做了我正在寻找的东西:
"UPDATE用户SET投票= (votes + 1) WHEREID = '44'"`< - 注意缺少引号(投票+ 1)
有没有人知道如何使用codeigniter的活动记录语法实现这种类型的查询?
我有一个非常小的脚本来从数据库表中获取所有记录,代码如下
$query = $this->db->get($this->table_name);
return $query->result();
Run Code Online (Sandbox Code Playgroud)
使用这种语法,我将如何命名'name'?
每次我坚持按顺序排列时,我都会收到错误.
干杯,
在Codeigniter中,get_instance()是一个全局可用的函数,它返回包含所有当前加载的类的Controller超级对象(它返回Controller类实例).我将包含当前的源代码:
get_instance() 定义于 Codeigniter.php
// Load the base controller class
require BASEPATH.'core/Controller.php';
function &get_instance()
{
return CI_Controller::get_instance();
}
Run Code Online (Sandbox Code Playgroud)
并CI_Controller定义于Controller.php
class CI_Controller {
private static $instance;
/**
* Constructor
*/
public function __construct()
{
self::$instance =& $this;
// Assign all the class objects that were instantiated by the
// bootstrap file (CodeIgniter.php) to local class variables
// so that CI can run as one big super object.
foreach (is_loaded() as $var => $class)
{
$this->$var =& …Run Code Online (Sandbox Code Playgroud) 我已阅读和阅读有关PHPUnit,SimpleTest和其他单元测试框架的文章.它们听起来都很棒!我终于让PHPUnit与Codeigniter一起工作,感谢https://bitbucket.org/kenjis/my-ciunit/overview
现在我的问题是,我该如何使用它?
我看到的每个教程都有一些抽象的用法,如assertEquals(2, 1+1):
public function testSpeakWithParams()
{
$hello = new SayHello('Marco');
$this->assertEquals("Hello Marco!", $hello->speak());
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个输出这样一个可预测字符串的函数,那就太好了.通常我的应用程序从数据库中获取大量数据,然后在某种表中显示它.那么我该如何测试Codeigniter的控制器呢?
我想做测试驱动开发,我已经阅读了关于PHPUnits网站的教程,但是这个例子再一次看起来很抽象.我的大多数codeigniter函数都在显示数据.
是否有一本书或一本有实际应用的精彩教程和PHPUnit测试的例子?
我理解这是一个受欢迎的问题,我已经在Stack Overflow和其他网站(包括datatables网站)上阅读了所有类似的问题.
为了澄清,我正在使用
我还确保我正确地收到了JSON数组:
[{"name_en":"hello","phone":"55555555"},{"name_en":"hi","phone":"00000000"}]
Run Code Online (Sandbox Code Playgroud)
我的HTML表格如下所示:
<table id="customer_table">
<thead>
<tr>
<th>Name</th>
<th>Phone</th>
</tr>
</thead>
</table>
Run Code Online (Sandbox Code Playgroud)
这是我的document.ready功能:
$(document).ready(function(){
//$('#customer_table').DataTable();
$('#customer_table').DataTable( {
"ajax": 'json',
"dataSrc": "",
"columns": [
{ "data": "email" },
{ "data": "name_en" }
]
});
});
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
未捕获的TypeError:无法读取未定义的属性"长度"
当我使用PhpStorm创建一个新文件时,它会在顶部创建自己的注释,这样就可以了,但是当使用codeigniter注释使用/**/不起作用时,无论如何要禁用它?如果不是我将不得不得到一个新的编辑器.
这就是我的意思
<?php
/**
* Created by PhpStorm.
* User: Josh
* Date: 28/02/2015
* Time: 22:53
*/
Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×6
activerecord ×1
database ×1
datatables ×1
html-table ×1
jquery ×1
json ×1
mysql ×1
performance ×1
phpstorm ×1
phpunit ×1
redirect ×1
reference ×1
singleton ×1
sql ×1
unit-testing ×1
urlhelper ×1