一、Code样例
<?php
namespace App\Module\Cms\Controller;
use Swork\Server\Http\Argument;
use ......
/**
* 资讯内容控制器
* @Controller("/cms/info")
*/
class InfoController extends BeanCollector
{
/**
* @Inject()
* @var InfoLogic
*/
private $infoLogic;
/**
* 保存资讯内容数据
* @param Argument $argument
* @Validate(Method::Post)
* @return array
* @throws
*/
public function save(Argument $argument)
{
//外部参数
$cid = $argument->post('cid', 0); //分类ID
$title = $argument->post('title', ''); //资讯标题
$author = $argument->post('author', ''); //作者
$content = $argument->post('content', ''); //资讯详细内容
//保存数据
$this->infoLogic->save($cid, $title, $author, $content);
//返回
return 'success';
}
}
二、解析说明
1)类名注释为XX业务块的控制器
2)方法名save注释为保存XX业务块的数据
3)三段式注释:外部参数、保存数据、返回;
4)无特别要求,通常统一返回字符串 success 。
5)强制使用POST的方式接收数据。
6)在参数小于等于6个时,按单个参数单独传入;超过时,统一使用$others中传中。
即传入参数量最多为6个。
二、save、create、modify区别
方法名 | 描述说明 |
---|---|
save | 在前端(UI)既提供给新增,又提交给修改的接口 在后面逻辑层,在一个方法里面,通过主键(关键数据)区分是否新增 或 修改的操作 |
create | 仅提供对应业务操作是创建某个业务内容,如新增资讯内容 |
modify | 仅提供对应业务操作是更新某个字段内容,如修改资讯内容 |
四、超多字段样例
<?php
public function save(Argument $argument)
{
//外部参数
$cid = $argument->post('cid', 0); //分类ID
$title = $argument->post('title', ''); //资讯标题
$author = $argument->post('author', ''); //作者
$content = $argument->post('content', ''); //资讯详细内容
$subdesc = $argument->post('subdes', ''); //概要描述内容
//其它参数
$others = [
'imgsrc' = $argument->post('imgsrc', ''); //封面图片
'pubdate' = $argument->post('pubdate', ''); //发布日期
'pubsrc' = $argument->post('pubsrc', ''); //发布来源
];
//保存数据
$this->infoLogic->save($cid, $title, $author, $content, $subdesc, $others);
//返回
return 'success';
}