Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在图书馆工作与在codeigniter课堂工作相同_Php_Codeigniter - Fatal编程技术网

Php 在图书馆工作与在codeigniter课堂工作相同

Php 在图书馆工作与在codeigniter课堂工作相同,php,codeigniter,Php,Codeigniter,我正在开发codeigniter中的预订处理应用程序。我正在使用bookings controller,其中有搜索()、book()、review()、mailme()等函数。我正在那里编写每个bookings内容,由于单个控制器文件中的代码太多,事情变得一团糟 我想在另一个文件中处理一些小事情。我该怎么做?我已经创建了库,但在加载帮助程序、库等方面遇到了问题。如何创建另一个文件,使每个权限和加载内容与我的bookings controller文件完全相同 这是我的图书馆档案 <?php

我正在开发codeigniter中的预订处理应用程序。我正在使用bookings controller,其中有搜索()、book()、review()、mailme()等函数。我正在那里编写每个bookings内容,由于单个控制器文件中的代码太多,事情变得一团糟

我想在另一个文件中处理一些小事情。我该怎么做?我已经创建了库,但在加载帮助程序、库等方面遇到了问题。如何创建另一个文件,使每个权限和加载内容与我的bookings controller文件完全相同

这是我的图书馆档案

<?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 4.3.2 or newer
 *
 * @package     CodeIgniter
 * @author      ExpressionEngine Dev Team
 * @copyright   Copyright (c) 2008 - 2009, EllisLab, Inc.
 * @license     http://codeigniter.com/user_guide/license.html
 * @link        http://codeigniter.com
 * @since       Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * CodeIgniter Application Page Controller Class
 *
 * This class object is the super class that every library in
 * CodeIgniter will be assigned to.
 *
 * @package     CodeIgniter
 * @subpackage          Libraries
 * @category            Libraries
 * @author      Avash Poudel <atomambition@gmail.com>
 * @link        http://codeigniter.com/user_guide/general/controllers.html
 */
class Bookings_class {

    /**
     * Constructor
     *
     * Calls the initialize() function
     */

    public function __construct()
    {
        // Do something with $params
        $CI =& get_instance();

    $CI->load->helper('url');
    $CI->load->library('session');

    }



    function set_name($name)
    {
        $this -> session -> set_userdata('booking_name',$name);
    }

    function set_email($email)
    {
        $this -> session -> set_userdata('booking_email',$email);
    }
    function set_phone($phone)
    {
        $this -> session -> set_userdata('booking_phone',$phone);
    }









    }
?>

但是,它显示了致命错误:在第52行的a:\xampp\htdocs\wiyohk\app\modules\bookings\libraries\bookings\u class.php中对非对象调用成员函数set_userdata()


我不能像$this->session->set_userdata('booking_name',$name)

您正在将CI对象分配给$CI,因此您需要引用$CI(例如,$CI->session->set…),而不是$this。

您不能直接在库/helper中访问$this

您必须为CI创建实例,然后可以按如下方式使用

您可以将$CI声明为类变量,而不是在构造函数中执行

public$ci

在构造函数中,分配实例

$this->CI=&get_instance()

然后您可以在成员函数中使用,如下所示

$this->ci->session->set_userdata('booking_name',$name);

只需将
$this
替换为
$CI

function set_name($name)
{
    $CI -> session -> set_userdata('booking_name',$name);
}

function set_email($email)
{
    $CI -> session -> set_userdata('booking_email',$email);
}
function set_phone($phone)
{
    $CI -> session -> set_userdata('booking_phone',$phone);
}

访问我用我的库信息编辑了问题,但在使用会话库时出错。这里发生了什么?我使用public$CI=&get_instance()将$CI声明为类变量;但它抛出了错误。当我把它放在每个函数中时,它就工作了。我不能只放一次吗?当我把那一行放在第一个函数上面时得到的错误是,第42行的A:\xampp\htdocs\wiyohk\app\modules\bookings\libraries\bookings\u class.php中出现了语法错误,意外的“&”