如何构建Laravel模型等模型结构?

时间:2015-11-18 15:31:31

标签: php oop

我尝试创建一个像“Laravel Model”这样的模型。

我有一个mysql表。它的名字是“用户”。表中有3个用户。

1-史蒂夫罗杰斯 2- Obadiah Stane 3- Tony Stark

我做了一个模特但没有工作。我的代码:

abstract class Model
{
    protected static $properties = array();

    public static function find($id)
    {
        global $config;

        try {
            $db = new PDO($config['dsn'], $config['user'], $config['password']);
        } catch (PDOException $e) {
            die ('Connect problem: <pre>' . $e->getMessage() . '</pre>');
        }
        $db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");

        $row = $db->query("SELECT * FROM ".static::$table." WHERE id='".$id."' LIMIT 1")->fetch();

        if ($row)
        {
            foreach ($row as $key => $value)
            {
                if (is_numeric($key)) continue;
                static::$properties[$key] = $value;
            }
        }

        return $row ? new static : false;
    }

    public function __get($property)
    {
        return static::$properties[$property];
    }
}

我使用以下内容:

class User extends Model
{
    public static $table = 'users';
}

$k1 = User::find(1);
$k2 = User::find(2);
$k3 = User::find(3);

echo $k1->name." ".$k1->lastname."<br>".$k2->name." ".$k2->lastname."<br>".$k3->name." ".$k3->lastname;

结果:

  托尼·斯塔克(Tony Stark)托尼·斯塔克(Tony Stark)托尼·斯塔克(Tony Stark)

我想要这个结果:

  

史蒂夫·罗杰斯(Obadiah Stane)托尼·斯塔克(Tony Stark)

我的错误在哪里?

0 个答案:

没有答案