## 简介
<br>
本章通过`api`完成文章新增。
<br>
## 编辑控制器
<br>
编辑`~/api/modules/v1/controllers/TitleController.php`
<br>
```
<?php
namespace api\modules\v1\controllers;
use api\models\Title;
use yii\base\Exception;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use yii\helpers\VarDumper;
class TitleController extends \yii\web\Controller
{
public $enableCsrfValidation = false;
private $code = 200;
private $message = 'success';
private $data = null;
public function actionCreate()
{
//接收并格式化数据
$data = \Yii::$app->request->getRawBody();
$data = Json::decode($data);
//构建DAO
$dao = new \frontend\models\dao\Title();
$dao->title = ArrayHelper::getValue($data, 'title', null);
$dao->author = ArrayHelper::getValue($data, 'author', null);
$dao->date = date('Y-m-d', time());
$dao->text = ArrayHelper::getValue($data, 'text', null);
$dao->create_time = date('H:m:s', time());
$dao->status = mt\_rand(1, 3);
//插入
$res = $dao->save();
//异常处理
if (!$res) {
\Yii::error(VarDumper::dumpAsString($res));
throw new Exception('新增出错');
}
$this->data = $dao->toArray();
return [
'code' => $this->code,
'message' => $this->message,
'data' => $this->data
];
}
}
```
<br>
这里你会发现IDE标识了`use api\models\Title`,查看文件发现`gii`生成的命名空间为`app\models`,这里需要变更过来。
<br>
`api`的调试,推荐使用`postman`,[postman百度网盘下载](https://pan.baidu.com/s/1dEMMD2L#list/path=%2F)。
<br>
后续默认使用`postman`进行调试。
<br>
## 测试结果
<br>
传参及返回值展示
<br>
![](https://img.kancloud.cn/88/87/888744453571ef35470e307d1ded6461_1448x804.png)
<br>