标签: codeigniter

Codeigniter的记录行为| show_404()

我使用控制器为页面做一些自定义uri路由,它目前工作得很好.

这是控制器的精简版本,它使用PHPTAL作为模板引擎.

public function index()
{
    $this->tal->display('index');
}

public function view($url)
{       
    $this->loadView($url);
}   

private function loadView($url) 
{

   if (file_exists(ROOTPATH . 'webroot/' . $url . '/index.html')) 
   {
       $this->tal->display($url . '/index');
   } 
   else 
   {  
       show_404();
   }
}
Run Code Online (Sandbox Code Playgroud)

问题

我最近注意到,每次访问页面控制器时,我的日志中都出现以下错误:

ERROR - 2013-02-06 10:58:23 --> 404 Page Not Found -->

我发现这很奇怪,因为页面按预期显示,并且肯定没有404标题,网络面板没有404状态.

我最后将其缩小到show_404()方法中调用的辅助loadView()方法.删除该行可以阻止错误完全出现在日志文件中.

只有在找不到视图文件时才应执行此§show_404()§,在这种情况下,它应该显示404错误页面.但是,无论是否调用该方法,该方法的日志记录部分似乎都是在每次调用页面控制器时执行的loadView().

例

我index()在浏览器中访问视图,一切似乎工作正常,加载了正确的视图文件,没有错误.但是,从该loadView()方法记录404错误消息.该loadView()方法甚至没有从该index()方法调用,但它在日志文件中的输出似乎表明它正在被执行.

php codeigniter

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

处理Codeigniter查询中的括号

我有以下代码块,预计会返回 count

    $sql = "SELECT sum(count) as count 
            FROM multipleowners WHERE owner = ? " . $localityquery;
    $queryarray = array($owner, $locality);
    $query = $this->db->query($sql, $queryarray);
    if ($query->num_rows() > 0)
    {
        $result = $query->row_array();
        $count = $result['count']; 
    }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试打印时,我得到空值$count.

我用过print_r($this->db->last_query());,得到了以下查询,

SELECT sum(count) as count FROM multipleowners WHERE owner = 'Davenports Harbour Trustee (2012) Limited' and locality = 'Auckland Central'
Run Code Online (Sandbox Code Playgroud)

当我直接执行此查询到我的时,Postgresql IDE我得到了countas 的输出2.

这个查询出错了什么地方?我怀疑的存在(与)中WHERE条款.我该如何解决 ?

更新 …

php postgresql activerecord codeigniter

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

Phil Sturgeon的主题问题模板库

即使PyroCMS是一个很好的CMS使用,我强烈推荐任何人和每个人在情况授予时使用.

但是,我的情况需要一个自定义的CMS,它只是有很多不同之处,我正在使用我在那里看到的可以免费使用的一些库来开发我的.我目前正在使用的主要是Phil Sturgeon的模板库.

现在很明显他将它用于PyroCMS我试图匹配一个文件结构,就像他那样,以便模板系统顺利流动而没有任何问题.

我现在正陷入困境,因为我的登录表单找不到部分,我不太清楚为什么.当我的仪表板调用元数据部分时,它会将其加载得很好但是当我在登录表单中调用它时,某些东西正在其中并且没有加载它.

这是我当前的登录控制器,登录表单视图和文件结构,以确保正确设置.

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends Backend_Controller 
{
    public function __construct()
    {
        parent::__construct(); 
    }

public function index()
{ 
    $this->template
           ->set_layout(FALSE)
           ->build('login');
    }
}

<head>

    <!-- metadata needs to load before some stuff -->
    <?php file_partial('metadata'); ?>

</head> 

applications/
    themes/
        supr(my custom theme from template)/
            views/
                login.php
                partials/
                    metadata.php  
Run Code Online (Sandbox Code Playgroud)

任何人的想法?

php codeigniter

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

PHP使用ajax刷新表内容

我有一个表单,其中包含一个表,该表根据下拉列表中的选定选项动态填充数据.

下拉列表包含2个"启用"和"禁用"值.表中每行的第一列包含一个复选框.表结构如下.

[checkbox ]| user | status

[checkbox1]| jim  | enabled

[checkbox2]| sam  | disabled
Run Code Online (Sandbox Code Playgroud)

复选框值等于userid.

有一个用于更改所选用户状态的按钮.

在按钮上单击所选复选框值将使用ajax发布,并且所选用户的状态已更改,但数据仅在页面重新加载时刷新.

如何在状态更改时刷新表.这是我的剧本.

 function Status(){
    var checked = []
    $("input[name='select[]']:checked").each(function ()
    {
        checked.push(parseInt($(this).val()));
    });
    if(checked!=''){

                    $.ajax({
                        type:'post',
                        url:site_url()+'/common/changeStatus',
                        data:{'checked':checked},
                        dataType:'json',
                        async:false,
                        success:function(result){

                            if(result!= "false"){
                                $.msgBox({
                                    title:"Success",
                                    content:"Status change successful"
                                });
                                $(function () {
                                    $('.msgButton').click(function (event) {
                                        event.preventDefault();
                                        $("#table").load($(this).attr("#table"));

                                    });
                                });                                
                            }
Run Code Online (Sandbox Code Playgroud)

这#table是包含数据的表的id.

php jquery codeigniter partial-page-refresh

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

我应该使用标准HTML的表单助手吗?

使用这些类对性能或安全性问题有好处,因为我们知道HTML应该是纯HTML.

例:

在CodeigniterFramewỏrk:

 echo form_input(array('name' => 'one'));
Run Code Online (Sandbox Code Playgroud)

被称为

<input type="text" name="one"/>
Run Code Online (Sandbox Code Playgroud)

哪个更好?

html zend-framework codeigniter helpers

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

Codeigniter什么时候result_array()返回一个或多维数组?

返回$ query-> result_array();
有时我会得到多个这样的单个数组:

Array
(
    [user_id] => 32
    [username] => johnd
    [cat_id] => 7
)
Array
(
    [user_id] => 33
    [username] => Janed
    [cat_id] => 6

)
Run Code Online (Sandbox Code Playgroud)

虽然有时我得到像这样的多维数组:

Array
(
    [0] => Array
        (
            [user_id] => 33
            [username] => Janed
            [cat_id] => 6
        )

    [1] => Array
        (
            [user_id] => 32
            [username] => Johnd
            [cat_id] => 7
        )

)
Run Code Online (Sandbox Code Playgroud)

是否与查询有关,是否有特定的理由?

php codeigniter

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

用谷歌登录总是要求用户同意

我有一个内部网络应用程序,我的公司使用谷歌认证系统登录.它在大多数情况下运行良好,他们可以通过谷歌进行身份验证,同意我的应用程序访问基本用户详细信息,然后当它们返回到我的应用程序时,我确实可以获得他们的用户详细信息.

问题在于,我认为一旦他们同意,他们就不必每次都这样做.这是一个不正确的假设吗?就像现在一样,每次他们点击"使用谷歌登录"时,他们必须同意而不是重定向回我的应用程序.

我正在使用PHP(codeigniter)和在github上发现的非常好的Oauth lib(phil sturgeon的库的叉子).是否有一些我应该通过的参数,以便用户在第一次之后不必每次都给予同意?

login codeigniter oauth-2.0 google-oauth

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

为什么更新和选择两者不能使用相同的表

在这个查询中我想更新那些最新发布的记录.但是我的这个查询不起作用请帮帮我是什么原因???

错误: - 您无法在FROM子句中指定目标表'beevers_products'以进行更新

update beevers_products set product_name='my_product_name' where posted_date in (SELECT posted_date FROM `beevers_products` order by posted_date asc limit 1)
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

在CodeIgniter锚链接中确认框以删除记录

我使用以下代码从数据库中删除记录.但是我遇到了一个问题:当我点击确认框中的"取消"时,它会删除记录.如果我点击cancel它返回false但它如何删除记录?

怎么了?

Javascript代码:

function ConfirmDialog() {
  var x=confirm("Are you sure to delete record?")
  if (x) {
    return true;
  } else {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

视图中的PHP代码:

<?php
  echo anchor('user/deleteuser/'.$row->id, 'Delete', array('class'=>'delete', 'onclick'=>"return ConfirmDialog();"));
?>
Run Code Online (Sandbox Code Playgroud)

javascript php codeigniter

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

在杂货店搜寻没有发生的事情

在杂货店中,相关表格不会进行搜索.

搜索仅发生在该表字段中.

function index()  { 
    $crud = new grocery_CRUD();
    $crud->set_theme('flexigrid');
    $crud->set_table('table_name');
    $crud->display_as('id','Name');
    $crud->callback_column('id', array($this, 'changeName'));
    $output = $crud->render();
} 
Run Code Online (Sandbox Code Playgroud)
function changeName($value, $row)  {
    $new = $this->db->select('name')->where('another_table.id', $row->id)->get('another_table')->result();
    if(!empty($new)){
        return $new[0]->name;
    } else {
        return $value;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里搜索名称没有发生.

有人有解决方案吗?

提前致谢.

php codeigniter crud grocery-crud

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