修改数据跟添加数据类似,其实是完全写在一起的,为了更能清晰的知道流程,我这里还是分开写
接着增加的数据进行修改操作
修改数据
在控制器里面添加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
然后在User逻辑里面添加listUser方法
<?php
namespace app\frontend\logic;
use \tpfcore\Core;
class User extends FrontendBase
{
public function saveUser($data){
// 数据验证
$validate=\think\Loader::validate($this->name);
$validate_result = $validate->scene('add')->check($data);
if (!$validate_result) {
return [RESULT_ERROR, $validate->getError(), null];
}
$result=self::saveObject($data);
if($result){
return [RESULT_SUCCESS,"操作成功"];
}
return [RESULT_ERROR,"操作失败"];
}
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];
}
$result=self::saveObject($data);
if($result){
return [RESULT_SUCCESS,"操作成功"];
}
return [RESULT_ERROR,"操作失败"];
}
/*
获取用户
*/
public function listUser($where = [], $field = true, $order = '', $is_paginate = true , $join=[],$limit = DB_LIST_ROWS){
$paginate_data = $is_paginate ? ['rows' => $limit] : false;
return self::getObject($where, $field, $order, $paginate_data,$join);
}
}
省略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>
这样就完成了一个修改的操作了