library 再呼叫 library
我想問一下因為某些原因
我自己 定義一個 library 檔案
而裡面 有一個功能
需要呼叫
Upload 這個 library
但是 測試幾次 都呼叫失敗
所以 想問一下
ci 目前 有支援
library 呼叫 library 嗎? 无代码无真相 在类库里需要这样:
$CI =& get_instance();
$CI->load->library('xxx');
按楼上的方法呼叫 在类库里需要这样:
$CI =& get_instance();
$CI->load->library('xxx');
Hex 发表于 2010-12-30 11:35 http://codeigniter.org.cn/forums/images/common/back.gif
這方法 我有用 但是出來的是空值 = =
這幾天 我先整理一下程式碼
到時候 請大大們 幫我看一下 哪邊有問題 帮你顶下吧 本帖最后由 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;
}
}
} 我看了一下,模型不能放到 library 目录。
放到 lib 目录下的都是类库,不允许从 Model 继承。
CI 有很多规则,一定要按照手册来写,千万不能按照自己的想法来写。
PS: 看了你的代码,感觉很混乱,思路不清,模型不是模型,类库不是类库,建议都按层次严格划分,否则使用 CI 就毫无意义了,我们用框架就是为了清晰,而不是为了制造混乱。 本帖最后由 see52001 于 2011-1-3 15:35 编辑
我看了一下,模型不能放到 library 目录。
放到 lib 目录下的都是类库,不允许从 Model 继承。
CI 有很多规则,一定要按照手册来写,千万不能按照自己的想法来写。
PS: 看了你的代码,感觉很混乱,思路不清,模型不是模型,类库不是类库,建议都按层次严格划分,否则使用 CI 就毫无意义了,我们用框架就是为了清晰,而不是为了制造混乱。
Hex 发表于 2011-1-3 15:03 http://codeigniter.org.cn/forums/images/common/back.gif
你是指哪一邊
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 功能
所以 我才會把他直接放進去測試 MY_Table_Set.php
自己的类库不允许 MY_ 开头。
并且也不要从 Model 继承。
按照手册写肯定是没问题的,已经测试过了。
页:
[1]
2