2011-06-20 10 views
1

上の誤り...サイレント障害...シンプルCodeIgniterの愚かな質問のため申し訳ありませんが、これは狂気私を運転している荷重 - >モデル

次のように私はtest_framework.phpています

<?php 

    class Test_framework extends CI_Controller{ 

    function display_test(){ 
     echo "loading model..."; 
     $this -> load -> model('test_model'); 
     echo "model loaded..."; 
    } 
    } 
?> 
を私は私のindex.php/test_framework/display_testに行くとき

<?php 

class Test_model extends Model { 

    function get_all(){ 

    $q = $this -> db -> query("SELECT * FROM users"); 

    foreach($q -> result() as $row) 
    { 
     $data[] = $row; 
    } 
    return $data; 
    } 

} 

?>  

が、私は「ロードモデル...」決して「ロードされたモデルを...」を参照してください、とあります。

とtest_model.phpは、次のようにエラーはありません(空白の白いページのみ)。ここで何が起こっているのでしょうか?

答えて

3

まず、あなたのクラスの命名は間違っています。さらに、親モデル__construct()を拡張する必要があります。

ここでは、モデルのロードをトレースするエコーを設定することがあります。

class Test_model extends CI_Model { 

function __construct() 
{ 
    parent::__construct(); 
    echo 'Model loaded!'; // something like this 
} 

function get_all() 
{ 
// your code here 
} 


} 

編集manualからの引用:

クラス名は はと大文字の最初の文字を持っている必要があります残りの名前は小文字の です。クラス が基本Modelクラスを拡張していることを確認してください。

(マニュアルより)基本的なプロトタイプは次のとおりです。

class Model_name extends CI_Model { 

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

あなたの代わりにそれらを有するので、その上のコントローラとモデルの初期化を記録したい場合は、有効にすることができ、ページ上で何かをエコーログ application/config.php:

$config['log_threshold'] = 1; 

// 0 = Disables logging, Error logging TURNED OFF 
// 1 = Error Messages (including PHP errors) 
// 2 = Debug Messages 
// 3 = Informational Messages 
// 4 = All Messages 
+0

ありがとうDamien。私のクラスの命名が間違っている理由を広げることができますか? – TomBomb

+1

@user cuzのCI命名規則です。ユーザーガイドにあります。 – afarazit

+0

@atnoによると、大文字は大文字です。 CI_Modelを拡張することは、主なクラスがそのように呼ばれるので、正しい構文です。 –

関連する問題