php,一个小功能修改

php 我把职责全部删除,却提交保存不了,想要职责为空时也可保存
本人非技术人员,还请答题者直接给修改代码
数据字段

img


前端效果图片

img

前端

<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);
}

在修改后的代码中,我们首先判断职责是否为空,如果为空,则将职责字段设置为空字符串;否则,按照原来的逻辑对职责进行处理。然后,将修改后的数据保存到数据库中。这样,当职责为空时,也能够正常保存了。

需要注意的是,修改数据字段可能会对其他相关代码产生影响,因此需要在修改前进行充分的测试和确认,以确保代码的正确性和稳定性。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

保存提示什么