bonjours j'ai un petite perobleme dans ce tuto avec la function model::load on dirait qu'elle charge pas le model reagardez l'erreur :

index.php:
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('tijara');
require_once('Model.php') ;
Model::load('Category');
$Category->id = 2;
$Category->read('TEXT');
?>

Category.php
<?php
class Category extends Model{

    var $table = 'category';
}

?>

model.php
<?php
class Model{

    public $table;

    function read($field){
        if($field == null){ $field = "*"; }
        $sql = "SELECT $field FROM $this->table WHERE ID = $this->id";
        $req = mysql_query($sql) or die(mysql_error());
        $data = mysql_fetch_assoc($req);
        foreach($data as $k=>$v){
            $this->$k = $v;
        }

    }

    static function load($name){
        require("$name.php");
        return new $name();
    }

}
?>

( ! ) Fatal error: Call to undefined method stdClass::read() in C:\wamp\www\tijara\index.php on line 9
Call Stack
#   Time    Memory  Function    Location
1   0.0020  365280  {main}( )   ..\index.php:0

1 réponse


Ta fonction load retourne un objet $name, or en faisant juste Model::load('Category') tu ne récupères pas cet objet Category que tu viens d'instancier et tu ne peux donc pas y accéder. En faisant comme suit, cela corrige l'erreur :

$Category = Model::load('Category');