# 創建模型
模型是處理數據的地方,在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寫一個大項目了!