【问题标题】:Argument 1 passed to Illuminate\Database\Eloquent\Builder::create() must be of the type array, null given .. Error to post data传递给 Illuminate\Database\Eloquent\Builder::create() 的参数 1 必须是数组类型,给定 null .. 发布数据时出错
【发布时间】:2020-09-24 04:44:38
【问题描述】:

我收到错误消息说 create() 必须是我的 store 函数中的数组。我有点困惑如何更改它/纠正这个错误。任何人都可以建议我?我正在使用 vue js。我使用 formdata append 和 axios 将数据发布到数据库中。

    public function store(Request $request)
    {
        $requestJob = $request->get('UserApplyJob');
        $requestJob = UserApplyJob::create($requestJob);
    }


数据函数

data(){
            return{
                UserApplyJob:{
                    name:"",
                    email:"",
                    telephone:"",
                    pitch:"",
                    expectedSalary:"",
                    resume: null 
                },
                error:{}            
            }

这是方法函数

 methods:{
            validate: function(){
                let valid = true;

                if (!this.UserApplyJob.name){
                    this.$set(this.error, 'name' , 'Name is required');
                    valid=false;
                }
                return valid;
            },
            getFile(event){
                this.UserApplyJob.resume = event.target.files[0];
            },
            submit(){

                let formData = new FormData();
                formData.append('name',this.UserApplyJob.name);
                formData.append('email',this.UserApplyJob.email);
                formData.append('expectedSalary',this.UserApplyJob.expectedSalary);
                formData.append('pitch',this.UserApplyJob.pitch);
                formData.append('telephone',this.UserApplyJob.telephone);
                formData.append('resume',this.UserApplyJob.resume);

                axios({
                    method: 'POST',
                    url: '/applyJob',
                    data: formData,
                    headers: {'Content-Type': 'multipart/form-data' }
                })
                .then(function (response) {

                    console.log(response);
                })
                .catch(function (response) {
                    //handle error
                    console.log(response);
                });
            }
        }

【问题讨论】:

    标签: javascript arrays laravel vue.js controller


    【解决方案1】:

    请改成:

    $requestJob = $request->all();
    $requestJob = UserApplyJob::create($requestJob);
    

    【讨论】:

      【解决方案2】:

      您在store 控制器方法中所做的是使用它没有的表单字段(formData 没有任何 UserApplyJob 字段)。

      我想你想用formData 创建UserApplyJob 模型。为此,您需要使用所有请求数据:

      public function store(Request $request)
      {
          $requestJob = UserApplyJob::create($request->all());
      }
      

      【讨论】:

        猜你喜欢
        • 2018-05-28
        • 2018-04-19
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2020-10-29
        • 1970-01-01
        相关资源
        最近更新 更多