php 我把职责全部删除,却提交保存不了,想要职责为空时也可保存
本人非技术人员,还请答题者直接给修改代码
数据字段
前端
<template>
<!--
作者:jiaxin
时间:2021-03-31
描述:会员-用户列表-会员职责
-->
<el-dialog
title="编辑"
:visible.sync="dialogVisible"
@close="dialogFormVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="30%"
>
<el-form label-width="80px" :model="form">
<el-form-item label="姓名">
<el-input v-model="form.realName"></el-input>
</el-form-item>
<el-form-item label="手机号">
<el-input v-model="form.mobile"></el-input>
</el-form-item>
<el-form-item label="职责">
<el-select
v-model="valueSelect" multiple
placeholder="请选择对应的职责"
style="width: 100%"
@change="changeSelect"
>
<el-option
v-for="(item, index) in options"
:key="index"
:label="item.duty_name"
:value="item.duty_id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="editDuty" :loading="loading"
>保存</el-button
>
<el-button @click="dialogFormVisible">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
</template>
<script>
import DutyApi from "@/api/duty.js";
export default {
data() {
return {
page: 1,
list_rows: 1000,
/*是否显示*/
loading: false,
dialogVisible: false,
// 职责表单
options: [],
valueSelect: [],
};
},
props: ["open_evolve", "form", "gradeList"],
created() {
console.log(this.form);
console.log(this.gradeList);
// 获取指责列表
this.getDutyList();
this.dialogVisible = this.open_evolve;
// 从编辑过来的 如果本身有职责
if (this.form.user_duty_array.length > 0) {
for (var i = 0; i < this.form.user_duty_array.length; i++) {
this.form.user_duty_array[i] = parseInt(this.form.user_duty_array[i]);
}
this.valueSelect = this.form.user_duty_array;
}
},
methods: {
// 获取指责列表
getDutyList() {
DutyApi.dutyList(
{
page: this.page,
list_rows: this.list_rows,
},
true
)
.then((res) => {
console.log("获取指责列表");
console.log(res);
// 职责列表f赋值
this.options = res.data.list.data;
})
.catch((error) => {
this.loading = false;
});
},
// 选中值发生变化时触发
changeSelect(e) {
// 修改选中的职责id
this.form.user_duty = e;
},
/*用户职责编辑*/
editDuty() {
this.loading = true;
DutyApi.editUserDuty(
{
user_id: this.form.user_id,
user_duty: this.form.user_duty,
realName: this.form.realName,
mobile: this.form.mobile,
},
true
)
.then((data) => {
this.loading = false;
console.log("用户职责编辑");
console.log(data);
this.$message({
message: "恭喜你,用户修改成功",
type: "success",
});
this.dialogFormVisible(true);
})
.catch((error) => {
this.loading = false;
});
},
/*关闭弹窗*/
dialogFormVisible(e) {
if (e) {
this.$emit("closeDialog", {
type: "success",
openDialog: false,
});
} else {
this.$emit("closeDialog", {
type: "error",
openDialog: false,
});
}
},
},
};
</script>
<style></style>
关联duty.js
import request from '@/utils/request'
let DutyApi = {
/*职责--列表*/
dutyList(data, errorback) {
return request._get('/shop/project.duty/duty_list', data, errorback);
},
/*职责--添加*/
addDuty(data, errorback) {
return request._post('/shop/project.duty/duty_add_do', data, errorback);
},
/*职责--编辑*/
editDuty(data, errorback) {
return request._post('/shop/project.duty/duty_edit_do', data, errorback);
},
/*职责--删除*/
deleteDuty(data, errorback) {
return request._post('/shop/project.duty/duty_delete', data, errorback);
},
/*用户职责编辑*/
editUserDuty(data, errorback) {
return request._post('/shop/project.duty/user_add_duty', data, errorback);
},
}
export default DutyApi;
shop/project.duty
```php
<?php
namespace app\shop\controller\project;
use app\shop\controller\Controller;
use think\facade\Db;
use think\facade\Log;
use think\facade\Request;
use think\facade\Session;
/**
* 职责====
*/
class Duty extends Controller
{
/**
* 获取职责列表
*/
public function duty_list(){
$my_store = Session::get('grownet_store');
$app_id = $my_store['app']['app_id'];
$where = array(
'app_id'=>$app_id,
'is_delete'=>0,
);
@$page_now = !empty($_REQUEST['page']) ? intval($_REQUEST['page']) : 1; //当前页码
@$pagesize = !empty($_REQUEST['list_rows']) ? intval($_REQUEST['list_rows']) : 10;//每页展示数量
$start_limit = ($page_now - 1) * $pagesize;
$listData = Db::name('project_duty')->where($where)->limit($start_limit, $pagesize)->order("duty_id desc")->select();
$data=array();
$list=array();
$current_page=$page_now;
$total=Db::name('project_duty')->where($where)->count();
$per_page=$_REQUEST['list_rows'];
$last_page=ceil($total/$per_page);
$list['current_page']=$current_page;
$list['total']=$total;
$list['per_page']=$per_page;
$list['last_page']=$last_page;
$list['data']=$listData;
$data['list']=$list;
return_success($data);
}
/**
* 职责添加
*/
public function duty_add_do(){
$my_store = Session::get('grownet_store');
$app_id = $my_store['app']['app_id'];
$postData=Input('post.');
$postData['app_id']=$app_id;
$data=Db::name('project_duty')->save($postData);
return_success($data);
}
/**
* 职责编辑
*/
public function duty_edit_do(){
$postData=Input('post.');
$data=Db::name('project_duty')->save($postData);
return_success($data);
}
/**
* 职责编辑
*/
public function duty_delete(){
$postData=Input('post.');
$postData['is_delete']=1;
$data=Db::name('project_duty')->save($postData);
return_success($data);
}
/**
* 用户列表,绑定职责
*/
public function user_add_duty(){
$postData=Input('post.');
//处理规则数字
$user_duty=$postData['user_duty'];
if(!is_array($user_duty)){
$user_duty=explode(',',$user_duty);
}
//$user_duty=\explode()
$dutyStr="";
foreach($user_duty as $k=>$v){
if($dutyStr){
$dutyStr=$dutyStr.','.$v;
}else{
$dutyStr=$v;
}
}
$postData['user_duty']=$dutyStr;
$data=Db::name('user')->save($postData);
return_success($data);
}
}
```
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据您的需求,需要修改的是 user_add_duty
方法,使得在职责为空时也能够保存。具体来说,需要在代码中添加一些判断逻辑,判断当前职责是否为空,如果为空,则将职责字段设置为一个空字符串,然后进行保存操作。以下是修改后的 PHP 代码:
/**
* 用户列表,绑定职责
*/
public function user_add_duty(){
$postData=Input('post.');
// 判断职责是否为空,如果为空则将职责字段设置为空字符串
if(empty($postData['user_duty'])){
$postData['user_duty'] = '';
} else {
// 处理规则数字
$user_duty=$postData['user_duty'];
if(!is_array($user_duty)){
$user_duty=explode(',',$user_duty);
}
$dutyStr="";
foreach($user_duty as $k=>$v){
if($dutyStr){
$dutyStr=$dutyStr.','.$v;
}else{
$dutyStr=$v;
}
}
$postData['user_duty']=$dutyStr;
}
$data=Db::name('user')->save($postData);
return_success($data);
}
在修改后的代码中,我们首先判断职责是否为空,如果为空,则将职责字段设置为空字符串;否则,按照原来的逻辑对职责进行处理。然后,将修改后的数据保存到数据库中。这样,当职责为空时,也能够正常保存了。
需要注意的是,修改数据字段可能会对其他相关代码产生影响,因此需要在修改前进行充分的测试和确认,以确保代码的正确性和稳定性。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
保存提示什么