2012-11-25 98 views
0

我試圖加載名爲Single_column的庫。我創建這個庫,並將其設置到庫文件夾中。在這一點上,我必須提到我使用代碼Igniter框架。該Sinle_column類包含下面的代碼:在CI中加載庫

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

class Single_column 
{ 
    public function render($id) 
    { 
     $CI =& get_instance(); 

     // DB calls 
     // search for uri in db 
     $CI->load->model('m_single_column'); 
     $image = $CI->m_single_column->getImageURI($id); 
     $text = $CI->m_single_column->getText($id); 

     // ==== HEADER 
     // eventually, this will be loaded from the db 
     $header_data['title'] = "Single Column Demo"; 
     $header_data['css'][] = "single_column"; 
     $CI->load->view('v_header', $header_data); 

     // ==== CONTENT 
     $content_data['content'] = '<div class="content-block">'; 
     $content_data['content'] .= '<div class="image">'; 
     $content_data['content'] .= '<img src="' . base_url() . $image . '" width="200" height="133" alt="my tractor"/>'; 
     $content_data['content'] .= '</div>'; 
     $content_data['content'] .= $text; 
     $content_data['content'] .= '</div><!-- end content-block-->'; 

     $CI->load->view('v_content', $content_data); 

     // ==== FOOTER 
     $CI->load->view('v_footer'); 
    } 
    } 

?> 

現在到控制器中的文件夾我有名字的類:

<?php 

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

class Master extends CI_Controller { 

    function __construct() { 
     parent::__construct(); 

    } 

public function _remap($method) { 
    // remap overrides function calls 
    // search for uri in db 

    $this->load->model('m_master'); 

    $uri_id = $this->m_master->findURI(uri_string()); 
    $page; 
    if ($uri_id != false) {  
     $this->{$page->controller}->render($page->id); 
    } else { 
     show_404(uri_string()); 
    } 
} 

} 

?> 

上述代碼是從一個教程,我的問題是,在下面的行:

$this->{$page->controller}->render($page->id); 

顯示的錯誤是以下各項之一:

Fatal error: Cannot access empty property in C:\xampp\htdocs\PhpProject1\application\controllers\master.php on line 24 

其實我意識到它無法識別方法'渲染'。 所以,我想下面的代碼行到if語句

$library= Single_column::$uri_id['id'];; 
    $this->load->library($library); 

但我收到以下錯誤: 致命錯誤:類「Single_column」用C未找到:\ XAMPP \ htdocs中\ PhpProject1 \程序\第22行的controllers \ master.php

此外,$ uri_id返回一個sql對象。但我想只傳遞對象的id屬性。

問題:我怎樣稱呼圖書館?我怎樣才能將一個值傳遞給一個類的方法(render方法)?爲什麼上述線路無法工作?

回答

1

不確定爲什麼要將模型加載到庫中。

確保您的圖書館也存儲在application/libraries

$this->load->library('your_library_name'); 
$this->your_library_name->render($page->id); 

這類似於裝載笨庫。

+0

在第二行我收到以下錯誤:致命錯誤:調用第25行中C:\ xampp \ htdocs \ PhpProject1 \ application \ controllers \ master.php中的非對象上的成員函數render() –