标签: codeigniter

codeIgniter pagination-不会转到搜索结果的下一个链接

我正在使用分页搜索结果.搜索工作完美.搜索后显示前10条记录.但是当我点击下一个按钮时,一切都会消失,并显示一个空白页面.

任何想法在我的代码可能是错的将不胜感激.

模型

function search_bookings($time, $title, $payment, $start_date, $end_date,$limit, $start, $type) {

        $this->db->select('reservations.*');
        $this->db->from('reservations');
        $this->db->where('is_deleted', '0');
        $this->db->order_by('date_cal',"desc");

         if (!empty($time) && !is_null($time)) {
            $this->db->where('reservations.type', $time);
        }
        if (!empty($payment) && !is_null($payment)) {
            $this->db->where('reservations.advanced_payment_status', $payment);
        }

        if (!empty($title) && !is_null($title)) {
            $this->db->where('reservations.title', $title);
        }

        if (!empty($start_date) && !is_null($start_date)) {
            $this->db->where('reservations.date_cal >=', $start_date);
            $this->db->where('reservations.date_cal <=', $end_date);
        }

         if ($type == 'half') {
            $this->db->limit($limit, $start);
        }
        $query = $this->db->get();
        return $query->result();
    }
Run Code Online (Sandbox Code Playgroud)

调节器

 function search_reservations($start = 0) {
        $reservation_service = new Reservation_service();
        $config = array(); …
Run Code Online (Sandbox Code Playgroud)

php pagination codeigniter

6
推荐指数
1
解决办法
1236
查看次数

使用PHPStorm使用XDebug调试Codeigniter

设置XDebug后,我成功调试了可以直接访问PHPStorm的php文件.

但最近我开始使用CodeIgniter,我完成了本教程.现在我想知道是否可以调试特定的MVC文件,例如controller.php.因为在设置断点并开始使用PHPStorm调试控制器文件之后,它当然声明"不允许直接脚本访问",因为我直接访问了脚本.

当手动访问文件时,例如http:// localhost:63342/01_codeigniter_tutorial/public_html/index.php/controller它只显示404页面而不是显示的常用输出,而不是用PHPStorm打开它.

所以我想知道是否有一个特定的文档来读取调试CodeIgniter或我只是处理错误?

php codeigniter xdebug phpstorm

6
推荐指数
1
解决办法
5484
查看次数

Codeigniter SET查询变量

我需要使用Codeigniter查询生成器执行此查询:

SET @row_number:=0;

SELECT Id, @row_number:=@row_number+1 as Position
FROM my_table
WHERE date='2015-12-26'
Run Code Online (Sandbox Code Playgroud)

我可以通过使用"$ this-> db-> query"函数来完成它,如下所示:

    $query = 'SET @row_number:=0;';
    $this-> db-> query ($query);

    $query = 'SELECT Id, @row_number:=@row_number+1 as Position';
    $query = $query . ' FROM my_table';
    $query = $query . ' WHERE date=\'' . $data . '\''
Run Code Online (Sandbox Code Playgroud)

但是,我的问题是:如果没有硬编写查询,有没有办法做到这一点,所以写这样的东西:

        $query = 'SET @row_number:=0;';
        $this-> db-> query ($query);
        #*****It's wrong!!!!*****

        $this -> db -> select(array('Id', '@row_number:=@row_number+1 as Position'));
        $this -> db -> from('my_table');
        $this -> db -> where('date', $data);
        $query …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

6
推荐指数
1
解决办法
1085
查看次数

codeigniter 3.0自定义404未找到错误页面

我的问题是升级到Codeigniter 3.0后的自定义错误页面.

我曾经有一个Errors控制器处理网站的404错误页面 - 在这个控制器上我已经定制了一些页面部分,比如如果用户登录,它在导航栏上显示用户名等等(是的,在404上)错误页面).

升级到CI 3.0后,我注意到错误页面在不同的文件夹中处理,我开始以这种方式迁移; 但问题是我无法将任何变量加载到此页面,例如会话变量或甚至无法在这些页面上使用任何CI的功能.

我认为这些页面应该只是HTML页面,但有没有办法将变量加载到这些错误页面?

php codeigniter codeigniter-3

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

Common_Model.php存在,但不声明类Common_Model

我试着检查所有的名字.它在php 5.3中工作正常,但在php 5.5中无效

遇到了未被捕获的异常

键入:RuntimeException

消息:C:\ xampp\htdocs\project\application\models/Common_Model.php存在,但未声明类Common_Model

文件名:C:\ xampp\htdocs\project\system\core\Loader.php

行号:306

回溯:

文件:C:\ xampp\htdocs\project\application\controllers\Auth.php行:7功能:__ construct

文件:C:\ xampp\htdocs\project\index.php行:292功能:require_once

在消息中,我可以看到前面出现意外的反斜杠Common_Model.php.Message: C:\xampp\htdocs\project\application\models/Common_Model.php exists, but doesn't declare class Common_Model

Common_Model.php 包含:

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

class Common_Model extends CI_Model {


        public function __construct()
        {
                // Call the CI_Model constructor
                parent::__construct();
        }
        .
        .
        .
        .
Run Code Online (Sandbox Code Playgroud)

编辑

我刚刚将Common_Model.php更改为Common_model.php并仍然得到相同的错误

遇到了未被捕获的异常

键入:RuntimeException

消息:C:\ xampp\htdocs\project\application\models/Common_model.php存在,但未声明类Common_model

文件名:C:\ xampp\htdocs\project\system\core\Loader.php

行号:306

回溯:

文件:C:\ xampp\htdocs\project\application\controllers\Auth.php行:7功能:__ construct

文件:C:\ xampp\htdocs\project\index.php行:292功能:require_once

php mysql codeigniter

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

如何在编辑方法中停止更新codeigniter中的密码?

当我编辑用户并保存它时,它会在数据库中保存空白.它保存所有其他字段,但是对于密码我每次编辑用户时都必须手动添加密码.

这是我的编辑方法::

if ($id) 
        {
            $this->data['user'] = $this->user_m->get_emp($id);

            count($this->data['user']) || $this->data['errors'][] = 'User could not be found';

            $rules = $this->user_m->rules_admin;
            $id || $rules['password']['rules'] .= '|required';
            $this->form_validation->set_rules($rules);

                    // Process the form
            if ($this->form_validation->run() == TRUE) 
            {

                $data = $this->user_m->array_from_post(array('emp_id','name','last_name','email','password','phone','gender','designation','user_type','blood_group','date_birth','status','address'));


                $data['password'] = $this->user_m->hash($data['password']);

                $id = $this->session->userdata('id');


                $this->user_m->save($data, $id);

                redirect('admin/user/index');
            }

        }

        // Load the view
        $this->data['subview'] = 'employee/profile/edit';
        $this->load->view('employee/_layout_main', $this->data);
Run Code Online (Sandbox Code Playgroud)

这是我的HASH方法:

public function hash ($string)
{
    return hash('sha512', $string . config_item('encryption_key'));
}
Run Code Online (Sandbox Code Playgroud)

现在我想要当我编辑用户并且我不更改他的密码我不希望密码更新为空白而是保持最后插入的密码.

但我的代码生成此查询:

UPDATE `users` SET `emp_id` = '21', `name` = …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

6
推荐指数
1
解决办法
1115
查看次数

CI 3.0.4 large where_in查询导致原因消息:preg_match():编译失败:正则表达式在偏移处太大)

我正在运行一个查询,其中$sale_ids可能包含100到数千个sale_ids.我正在寻找一种方法来修复正则表达式错误,而无需修改CI 3的核心.

这在版本2中没有发生,并且不被认为是CI 3中的错误(我之前提出过这个问题).

我有办法让这个工作吗?我可以改变应用程序的逻辑,但这需要几天的工作.

我正在寻找一种方法来扩展/覆盖一个类,所以我可以允许这个查询工作如果没有办法通过覆盖这样做我将不得不破解核心(我不知道如何).

$this->db->select('sales_payments.*, sales.sale_time');
$this->db->from('sales_payments');
$this->db->join('sales', 'sales.sale_id=sales_payments.sale_id');
$this->db->where_in('sales_payments.sale_id', $sale_ids);
$this->db->order_by('payment_date');
Run Code Online (Sandbox Code Playgroud)

错误是:

Severity: Warning

Message: preg_match(): Compilation failed: regular expression is too large at offset 53249

Filename: database/DB_query_builder.php

Line Number: 2354

Backtrace:

File: /Applications/MAMP/htdocs/phppos/PHP-Point-Of-Sale/application/models/Sale.php
Line: 123
Function: get

File: /Applications/MAMP/htdocs/phppos/PHP-Point-Of-Sale/application/models/Sale.php
Line: 48
Function: _get_all_sale_payments

File: /Applications/MAMP/htdocs/phppos/PHP-Point-Of-Sale/application/models/reports/Summary_payments.php
Line: 60
Function: get_payment_data

File: /Applications/MAMP/htdocs/phppos/PHP-Point-Of-Sale/application/controllers/Reports.php
Line: 1887
Function: getData

File: /Applications/MAMP/htdocs/phppos/PHP-Point-Of-Sale/index.php
Line: 323
Function: require_once
Run Code Online (Sandbox Code Playgroud)

regex codeigniter

6
推荐指数
1
解决办法
2663
查看次数

Codeigntier:无法加载请求的文件:Ubuntu 14.04上的helpers/phpass_helper.php

我试图在我的基本控制器中加载Phpass助手,以便哈希我的密码.但是,它似乎没有在Ubuntu 14.04上加载.我试图搜索,有些人说这可能是因为Linux区分大小写,所以我将文件从phpass_helper.php更改为Phpass_helper.php.并使用以下代码加载它:

$this->load->helper('Phpass_helper');
Run Code Online (Sandbox Code Playgroud)

但它仍然给我错误说:无法加载请求的文件:helpers/phpass_helper.php.有谁知道为什么它不起作用?任何帮助将不胜感激.谢谢.

class PasswordHash {
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;

function PasswordHash($iteration_count_log2, $portable_hashes)
{
    $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

    if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
        $iteration_count_log2 = 8;
    $this->iteration_count_log2 = $iteration_count_log2;

    $this->portable_hashes = $portable_hashes;

    $this->random_state = microtime();
    if (function_exists('getmypid'))
        $this->random_state .= getmypid();
}

function get_random_bytes($count)
{
    $output = '';
    if (is_readable('/dev/urandom') &&
        ($fh = @fopen('/dev/urandom', 'rb'))) {
        $output = fread($fh, $count);
        fclose($fh);
    }

    if (strlen($output) < $count) {
        $output = '';
        for ($i = 0; …
Run Code Online (Sandbox Code Playgroud)

php ubuntu codeigniter phpass

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

Phil Sturgeon的REST服务器,Codeigniter3,错误消息在PUT上没有返回

我正在使用Phil Sturgeon的REST服务器,CI3和POSTMAN进行调试.我发送了一个PUT以下信息,但是,我没有收到预期的错误消息.

这是我的form_validation.php:

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

$config = array(
  'student_put' => array(
    array('field' => 'email_address', 'label' => 'email_address', 'rules' => 'trim|required|valid_email'),
    array('field' => 'password', 'label' => 'password', 'rules' => 'trim|required|min_length[8]|max_length[16]'),
    array('field' => 'first_name', 'label' => 'first_name', 'rules' => 'trim|required|max_length[50]'),
    array('field' => 'last_name', 'label' => 'last_name', 'rules' => 'trim|required|max_length[50]'),
    array('field' => 'phone_number', 'label' => 'phone_number', 'rules' => 'trim|required|alpha_dash'),
  )
);

?>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器Api.php中的方法:

function student_put(){
    $this->form_validation->set_data($this->put());
    // these are the rules set in config/form_validation.php
    if …
Run Code Online (Sandbox Code Playgroud)

php rest codeigniter codeigniter-restserver

6
推荐指数
1
解决办法
950
查看次数

在CodeIgniter MySQL查询中获取额外空格

我正在尝试运行的查询的代码是

$query = $this->db->select("*")->from('items')->like("replace(name, '=', ' ')", "foo bar", 'both')->get();

$items = $query->num_rows();
Run Code Online (Sandbox Code Playgroud)

Mysql查询字符串是

SELECT replace(name, ' = ', ' ') FROM `items`
Run Code Online (Sandbox Code Playgroud)

代码正在做的是在编译查询时在"="之前和之后添加一个空格,导致"="返回没有结果,因为名称中没有带"="的项,只有"=".

foo=bar, replace(name, '=', ' ') returns 1 result.
foo = bar, replace(name, ' = ', ' ') returns 0 results.
Run Code Online (Sandbox Code Playgroud)

我正在使用的CodeIgniter版本是:3.0.6

php mysql codeigniter

6
推荐指数
1
解决办法
989
查看次数