php mvc - 将模型的方法应用于db

时间:2015-09-30 10:02:39

标签: php oop model

在许多php框架中,我们可以做类似的事情:

{
    "data": {
                "some_key":"some_val",
                "title":"test title",
                "message":"Test message from 30.09.2015 12:57:44",
                "notId":14243
            },
    "registration_ids":["*******"]
}

如何在我自己的解决方案中执行此操作?我目前的模特:

class Test extends Model
{
    protected $first;
    protected $second;

    public function getAllAttributes() {
        return $this->first.','.$this->second;
    }
}

用法:

class Model
{

    // ..

    public function all() {
        return mysqli_query($con, 'select * from '.$this->table);
    }

}

1 个答案:

答案 0 :(得分:0)

据我所知,您希望从MySQL查询创建当前类的对象,而无需再次处理每个模型中的查询生成和对象实例化。

您描述的模型(模型负责加载自身)被称为 Active Record ,并且受到Ruby on Rails的欢迎,然后在CakePHP和Laravel等PHP框架中进行了调整。

如何实现它没有单一的解决方案,请查看这些框架的代码以了解它们的工作原理。

重要的是,模型必须以某种方式描述自己,即从数据库加载哪些属性,它们的数据类型是什么,使用哪个表。这可以基于MySQL中的DESCRIBE $table结果,通过" Annotations"和反射,或明确的代码。