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