用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4665|回复: 10
收起左侧

[已解决] library 再呼叫 library

[复制链接]
发表于 2010-12-30 09:45:48 | 显示全部楼层 |阅读模式
我想問一下
因為某些原因
我自己 定義一個 library 檔案
而裡面 有一個功能
需要呼叫
Upload 這個 library
但是 測試幾次 都呼叫失敗
所以 想問一下
ci 目前 有支援
library 呼叫 library 嗎?
发表于 2010-12-30 09:56:16 | 显示全部楼层
无代码无真相
发表于 2010-12-30 11:35:01 | 显示全部楼层
在类库里需要这样:
PHP复制代码
 
$CI =& get_instance();
$CI->load->library('xxx');
 
复制代码
发表于 2010-12-31 10:33:59 | 显示全部楼层
按楼上的方法呼叫
 楼主| 发表于 2010-12-31 12:56:36 | 显示全部楼层
在类库里需要这样:
$CI =& get_instance();
$CI->load->library('xxx');
Hex 发表于 2010-12-30 11:35



這方法 我有用 但是出來的是空值 = =
這幾天 我先整理一下程式碼
到時候 請大大們 幫我看一下 哪邊有問題
发表于 2011-1-1 09:44:17 | 显示全部楼层
帮你顶下吧
 楼主| 发表于 2011-1-3 13:30:53 | 显示全部楼层
本帖最后由 see52001 于 2011-1-3 15:24 编辑

以下是我的程式碼
當然 這邊 有把沒關聯的程式拿掉
只是把重點 寫出來而已

用到的檔案
controllers
       test.php
model
      admin_model.php
      test_model.php
libraries
     Upload.php
     MY_Table_Set.php

程式碼
test.php
class test extends Controller {
        public function __construct(){
                parent::controller();
                $this->load->model("test_model","model");
        }
      
       public index(){
                   if( 條件成立 ){
                       $this->model->_updata();
                    }
       }
}

admin_model.php
class Admin_Model extends Model{
        function __construct()
        {
                parent::Model();
                $this->load->database();
        }
}


test_model.php
class Test_Model extends Admin_Model{
         public function __construct(){
                parent::__constructl();
                $this->load->library("MY_Table_Set");
        }
         public function _updata()
        {
                $value = $this->my_table_set->_upload_file($col_name,$upload_dir,$self_page,$hidden_name , $file = 'file'); //就是這邊開始有問題 , 參數我就不帶了
                ....
                ....
                parent::_updata( $value , $where , $this->_list_tb );
        }
}

MY_Table_Set.php
class MY_Table_Set extends Model{
        public function __construct(){
                parent::Model();
        }

        //設定檔案上傳
        public function _upload_file($col_name,$upload_dir,$self_page,$hidden_name , $file = 'file')
        {
                if( $filename == '') return $hidden_name;
               
                $config['upload_path']                 = UPLOAD_DIR_PATH.$upload_dir;
                $config['max_size']                        = '2000';
               
                if( $file == 'pic'){
                        $config['allowed_types']         = 'gif|jpg|png|bmp';
                        /*
                        $config['max_width']  = '50';
                        $config['max_height']  = '50';
                        */
                } else {
                        $config['allowed_types']         = $ext;
                }
               
                $this->load->library('upload', $config); //   這是這裡有問題,取得是null
               
               //***
                $CI =& get_instance();
                $CI->load->library('upload');
               也是不行
                **//


                //如果錯誤 顯示錯誤訊息
                if ( !$this->upload->do_upload($col_name)) {
                        $error = $this->upload->display_errors('','\n');
                        show_message( $error, $return_page );
                } else {
                        return $new_name;
                }
        }



}
发表于 2011-1-3 15:03:20 | 显示全部楼层
我看了一下,模型不能放到 library 目录。
放到 lib 目录下的都是类库,不允许从 Model 继承。
CI 有很多规则,一定要按照手册来写,千万不能按照自己的想法来写。

PS: 看了你的代码,感觉很混乱,思路不清,模型不是模型,类库不是类库,建议都按层次严格划分,否则使用 CI 就毫无意义了,我们用框架就是为了清晰,而不是为了制造混乱。
 楼主| 发表于 2011-1-3 15:12:34 | 显示全部楼层
本帖最后由 see52001 于 2011-1-3 15:35 编辑
我看了一下,模型不能放到 library 目录。
放到 lib 目录下的都是类库,不允许从 Model 继承。
CI 有很多规则,一定要按照手册来写,千万不能按照自己的想法来写。

PS: 看了你的代码,感觉很混乱,思路不清,模型不是模型,类库不是类库,建议都按层次严格划分,否则使用 CI 就毫无意义了,我们用框架就是为了清晰,而不是为了制造混乱。
Hex 发表于 2011-1-3 15:03



你是指哪一邊
controllers
       test.php
model
      admin_model.php
      test_model.php
libraries
     Upload.php
     MY_Table_Set.php
這裡就是我放檔案的位置

如果 你是指
class MY_Table_Set extends Model{
        public function __construct(){
                parent::Model();
        }
的這邊
這邊的 extends Model 是我測試用的 實際上 這邊是純 lib
只是有一個東西 偏偏要用到 upload.php 功能
所以 我才會把他直接放進去測試
发表于 2011-1-3 15:35:21 | 显示全部楼层
MY_Table_Set.php
自己的类库不允许 MY_ 开头。
并且也不要从 Model 继承。

按照手册写肯定是没问题的,已经测试过了。

本版积分规则