修改数据跟添加数据类似,其实是完全写在一起的,为了更能清晰的知道流程,我这里还是分开写
接着增加的数据进行修改操作
一、修改控制器
在控制器里面添加edit操作
<?php
namespace app\frontend\controller;
use \tpfcore\Core;
class User extends FrontendBase
{
public function add()
{
IS_POST && $this->jump(Core::loadModel($this->name)->saveUser($this->param));
return $this->fetch("add");
}
public function edit(){
IS_POST && $this->jump(Core::loadModel($this->name)->editUser($this->param));
return $this->fetch("edit",[
"list"=>Core::loadModel($this->name)->listUser($this->param)
]);
}
}
这里跟添加差不多,主要是查询要修改的那句,为了展示我要修改的是哪条语句,当然你要传递要修改的数据主键跟对应的值过来,例如id=1
二、服务层代码
<?php
// +----------------------------------------------------------------------
// | Author: yaoyihong <510974211@qq.com>
// +----------------------------------------------------------------------
namespace app\frontend\service;
use app\common\service\ServiceBase;
use \tpfcore\Core;
/**
* 基础服务
*/
class User extends FrontendBase
{
public function editUser($data){
// 在进行数据操作前进行数据验证
$validate=\think\Loader::validate($this->name);
$validate_result = $validate->scene('edit')->check($data);
if (!$validate_result) {
return [RESULT_ERROR, $validate->getError(), null];
}
return Core::loadModel($this->name)->saveObject($data);
}
public function listUser($data){
return Core::loadModel($this->name)->listUser($data);
}
}
三、逻辑层
<?php
namespace app\common\logic;
use \tpfcore\Core;
class User extends LogicBase
{
public function saveUser($data){
$result=self::saveObject($data);
if($result){
return [RESULT_SUCCESS,"操作成功"];
}
return [RESULT_ERROR,"操作失败"];
}
/*
获取用户
*/
public function listUser($data){
return self::getList($data);
}
}
省略edit场景验证.....
四、视图层
视图层拿来要修改的数据填充
<!DOCTYPE html>
<html>
<head>
<title>添加用户</title>
</head>
<body>
<form method="post" action="{:url('User/edit')}">
<input type="hidden" name="id" value="{$list[0]->id}" />
<input type="text" name="username" value="{$list[0]->username}" /><br/>
<input type="password" name="password" value="{$list[0]->password}" /><br/>
<input type="submit" value="操作操作"/>
</form>
</body>
</html>
这样就完成了一个修改的操作了