数据库模型
数据库模型简介
YY框架的数据库模型是一种ORM的提现方式。首先阅读这一小节之前请确保已经阅读过简单模型。
因为数据库模型继承自简单模型,所以简单模型的用法对数据库模型统统适用。 继续上一节中的例子: 控制器mmsz.php改为:
???//简单模型记录前台密码
???$admin = new Model('admin');
???$admin->id = Session::get('uid'); ???if($admin->try_post()){//密码被传入 ???
???if($admin->new != $admin->again){
???Session::once('cperr','两次密码不一致!'); ???return; ???}
???if(!$admin->is_real(array('id','password'))){ ???Session::once('cperr','原始密码不正确!'); ???return; ???}
???$admin->password = $admin->new; ???if($admin->save()){
???Session::once('cpsuc','密码修改成功!'); ???} ???}
视图内容mmsz.html:
???
???
??? ???
???密码修改 ???
???
???
??? ??? ???
???
???
上例控制器中的操作全部是由数据库模型完成的,其中new和again字段在正式的数据库表结构中并不存在, 不用担心在执行save()方法时框架会自动过滤掉数据库中不存在的字段,把变化的字段自动更新到数据库中。
save()既可以新增也可以更新,判断的依据是模型的id属性,不存在id时为新增,存在id时为更新。 方法列表
下面列举的方法是数据库模型中特有的,简单模型中列举过的方法此处就不再列举了。 avg
???Model::avg(string $field, miexd $condition, miexd $pam) ???查询并返回某字段的平均值
???如果$condition为数组则根据数组条件返回符合结果的列表
???如果$condition是字串则必须是 where语句之后的字串,亦可通过?和$pam数组组合成SQL语句
???如果不传入条件则根据where方法 的预设参数查询,如果where未被调用过则列出所有 ???
???Parameters:
???string $field 要查询 的字段
???miexd $condition 条件字符串或条件数组 ???miexd $pam 参数数组 ???
???Returns:
???integer 平均值 count
???Model::count(string $field) ???计算行数 ???
???Parameters:
???string $field 统计的参数(*) ???
???Returns: ???integer 计数 delete
???Model::delete(mixed $condition, mixed $pam) ???批量删除数据
???如果不传入条件则自动将这个Model的除id之外的其他字段属性作为条件 ???
???Parameters:
???mixed $condition 条件数组或字串 ???mixed $pam 参数数组 ???
???Returns:
???mixed 删除成功返回删除的条数 失败返回null field
???Model::field(string $select) ???设置查询字段 如:\???
???Parameters:
???string $select 要检索的字段 ???
???Returns:
???Model 模型本身 find
???Model::find(mixed $id, array $pam) ???根据id或者数组条件填充这个model
???示例: find(5) 或 find(array('name'=>'mqq','sex'=>'man')) ???
???Parameters:
???mixed $id 主键或条件数组 ???array $pam 参数值的数组 ???
???Returns:
???Model 模型本身 get_a_clone
???Model::get_a_clone()
???获得一个和此模型一模一样的克隆 ???不克隆ID信息 ???
???Returns:
???Model 新的模型
get_model_array
???Model::get_model_array(string|array $fields) ???获得模型属性信息的数组形式
???只包含数据库中已有的字段 不包含ID信息(特殊$fields指定除外) ???
???Parameters:
???string|array $fields 需要特定指定的字段 ???Returns:
???array 模型的信息数组 get_model_array_with_id
???Model::get_model_array_with_id() ???获得模型属性信息的数组形式
???只包含数据库中已有的字段 包含ID信息 ???
???Returns:
???array 模型的信息数组 has
???Model::has(miexd $condition, miexd $pam) ???查询是否含有符合条件的数据
???如果$condition为数组则根据数组条件返回符合结果的列表
???如果$condition是字串则必须是 where语句之后的字串,亦可通过?和$pam数组组合成SQL语句
???如果不传入条件则根据where方法 的预设参数查询,如果where未被调用过则列出所有 ???
???Parameters:
???miexd $condition 条件字符串或条件数组 ???miexd $pam 参数数组 ???
???Returns: ???boolean has_id
???Model::has_id()
???判断该模型是否含有ID
???查看数据库中是否有独立的一条数据与model对应 ???
???Returns: ???boolean