# 创建模型
模型是处理数据的地方,在XPHP中,附带了一个样例模型:
```php
<?php
/**
* IndexModel.php
* A Demo of Model
*
*/
namespace Model\Home;
use X\Model;
class IndexModel extends Model{
public function get($a){
return $this->ORM->where("name",$a)->findOne()->value;
}
}
```
MySQL表:
```SQL
-- Adminer 4.3.1 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
CREATE DATABASE `xphp` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
USE `xphp`;
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(200) NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`value` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `test` (`id`, `name`, `value`) VALUES
(1, 'time', '21sqse2sswqw12s'),
(2, 'hi', 'hi,too!'),
(3, 'anything', 'something is better');
-- 2017-08-09 04:59:24
```
可以看到,这个模型十分简单,只实现了一个get方法。
在get中,它返回了`$this->ORM->where("name",$a)->findOne()->value`的值。
讲解一下,`$this->ORM`是按照配置文件中的配置连接数据库,选择Controller中制定的表后的Idiorm实例。调用`where`方法,在表中查找名为`name`的一项,`findOne()`取其中的一个,最后获取他的值。
## 在Controller调用
您可以查看附带的`Controller\Home\IndexController`中的`Wow`方法:
```php
public function Wow($var){
$Model = $this->Model("IndexModel",array("test"));
$var['ORMDB_Result'] = $Model->get('hi');
return $this->Json($var);
}
```
首先,使用`$this->Model("模型名称",array("数据库表名称"))`实例化一个新的Model。
然后,通过调用 `$Model->get("name的值")`来获取一条`value`值(get方法在上面分析过了)。
接着,把这个值放到路由参数数组的`ORMDB_Result`中,随着路由参数数组一起以Json格式输出。
## 完成!
好了,到此为止,您已经熟练掌握一个MVC兼容MVVM框架的日常使用了!
如果还想深入,那么可以继续阅读,不继续,也没事,您已经可以使用XPHP写一个大项目了!