mvc 封装 5 BaseModel

本文介绍如何使用Medoo类库封装简单的PHP框架底层Model。通过Composer安装Medoo,并配置数据库连接,实现基本的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     1、我们上次利用composer加载了类库,这次我们封装框架的简单的底层 model 这里为了方便开发我们使用了 medoo这个类库

   mdeoo 网址:http://medoo.lvtao.net/index.php

  


  1、首先我们在我们的composer.json文件中加入

 

composer.json文件

{
  "name":"LONG PHP",
  "description":"PHP Framework",
  "type":"Framework",
  "keyword":[
    "PHP","PHP Framework"
  ],
  "require":{
  	"PHP":">=5.3.0",
  	"filp/whoops":"*", 
  	"symfony/var-dumper":"*",
  	"catfan/medoo":"*"

  },
  "repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
  }
}

2、cmd  进入框架根目录输入命令:composer update

 3、安装成功之后

 我们修改数据库配置文件 core\config\database.php   这里是按照medoo类库连接数据库   地址:http://medoo.lvtao.net/doc.php

database.php

<?php  
return array(
   	'database_type' => 'mysql',
    'database_name' => 'yii3',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
	);
?>


 


 4、 之后修改  core\lib\model.php


 

<?php  
namespace core\lib;
use \core\lib\conf;
class model extends \medoo{
   public function __construct(){
   
   	  $database = conf::all('database');
   	  // p($database);
	   parent::__construct($database);
	   

	   
   }
}



?>

此时我们在app文件下建立 models文件并在其目录下创建基类model:  BaseModel.php   笔者在medoo基础上加上了自己的想法!

<?php  
namespace app\models;

class BaseModel extends \core\lib\model{
 
    public  $table = "";

   /**
    * 获取全部信息
    * @param  string $colunm  [字段]
    * @param  array  $where [条件]
    * @return [array]        [查询信息]
    */
   public function getAll($cloumn ="",$cond = ""){
   	if(empty($cloumn)&&empty($cond)){
       $data= $this->select($this->table,"*");
       return $data;
    }else{
       $data= $this->select($this->table,"*",array($cloumn=>$cond));
       if($data){
         return $data;
       }else{
         return array();
       }
    } 
   }


   /**
    * [获取单条信息]
    * @param  array  $where [description]
    * @return [type]        [description]
    */
   public function  getOne($cloumn,$cond){
   	  $info= $this->get($this->table,"*",array($cloumn=>$cond));
   	  if($info){
   	  	 return $info;
   	  }else{
         return array();
   	  }
   }


   /**
    * [add 单条添加]
    * @param [array] $data [单条添加数据]
    * @return [int]        [自增id]
    */
   public function add($data){
      return $this->insert($this->table,$data);
   }


   /**
    * [addAll 批量添加]
    * @param [array] $data [添加数据]
    * @return [string]        [自增ids]
    */
   public function addAll($data){
       $count = count($data);
       $ids = "";
       $i = 0;
       while($i<$count){
         $ids .= ",";
         $ids .=  $this->insert($this->table,$data[$i]);
         $i++;
       }
       return trim($ids,',');
   }


   /**
    * [upda description]
    * @param  [type] $data   [修改数据]
    * @param  [type] $column [修改字段]
    * @param  [type] $id     [条件]
    * @return [type]         [受影响行数]
    */
   public function upda($data,$column,$cond){
     return $this->update($this->table,$data,array($column=>$cond));
   }


   /**
    * [del 永久删除]
    * @param  [string] $column [id字段]
    * @param  [int] $id     [id]
    * @return [int]         [受影响行数]
    */
   public function del($column,$id){
   		// echo $column.$id;
   	  return $this->delete($this->table,array($column => $id));

   }


}




?>


下面我们进行测试一下

app/models 文件下建立 对应的model

eg:MessageModel.php

<?php  
namespace app\models;

class MessageModel extends BaseModel{ 

   public  $table = "message";

   
}




?>

控制器引用:


输出结果:


此时我们没有就完成了一个简单的model封装 !!!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值