代码之家  ›  专栏  ›  技术社区  ›  Jems

Laravel使用AJAX来存储数据,但错误是因为它说数据为空

  •  1
  • Jems  · 技术社区  · 8 年前

    Route::resource('/post', 'PostController');
    

    public function store(Request $request)
    {
        $post = new Post();
        $post->PostDate = $request->PostDate[$this->DEFAULT_LANGUAGE] ? date('Y-m-d', strtotime($request->PostDate[$this->DEFAULT_LANGUAGE])) : Carbon::now();
        $post->PostTitle = $request->PostTitle[$this->DEFAULT_LANGUAGE];
        $post->PostContent = $request->PostContent[$this->DEFAULT_LANGUAGE] ? $request->PostContent[$this->DEFAULT_LANGUAGE] : '';
        $post->PostSlug = $request->PostSlug[$this->DEFAULT_LANGUAGE] ? $request->PostSlug[$this->DEFAULT_LANGUAGE] : $post->PostTitle;
        $post->PostTypeID = $request->PostTypeID[$this->DEFAULT_LANGUAGE]? $request->PostTypeID[$this->DEFAULT_LANGUAGE] : 1;
        $post->LanguageID = $this->DEFAULT_LANGUAGE;
        $post->SEODescription = $request->SEODescription[$this->DEFAULT_LANGUAGE] ? $request->SEODescription[$this->DEFAULT_LANGUAGE] : '';
        $post->AllowComment = $request->AllowComment[$this->DEFAULT_LANGUAGE] ? $request->AllowComment[$this->DEFAULT_LANGUAGE] : 0;
        $post->SidebarLeft = $request->SidebarLeft[$this->DEFAULT_LANGUAGE] ? $request->SidebarLeft[$this->DEFAULT_LANGUAGE] : '';
        $post->SidebarRight = $request->SidebarRight[$this->DEFAULT_LANGUAGE] ? $request->SidebarRight[$this->DEFAULT_LANGUAGE] : '';
        $post->HTMLBeforeDetail = $request->HTMLBeforeDetail[$this->DEFAULT_LANGUAGE] ? $request->HTMLBeforeDetail[$this->DEFAULT_LANGUAGE] : '';
        $post->HTMLAfterDetail = $request->HTMLAfterDetail[$this->DEFAULT_LANGUAGE] ? $request->HTMLAfterDetail[$this->DEFAULT_LANGUAGE] : '';
        $post->AllowViewDetail = $request->AllowViewDetail[$this->DEFAULT_LANGUAGE] ? $request->AllowViewDetail[$this->DEFAULT_LANGUAGE] : 0;
        $post->AllowViewDetail = $request->PostExpiredDate[$this->DEFAULT_LANGUAGE] ? date('Y-m-d', strtotime($request->PostExpiredDate[$this->DEFAULT_LANGUAGE])) : null;
        $post->CustomURL = $request->CustomURL[$this->DEFAULT_LANGUAGE] ? $request->CustomURL[$this->DEFAULT_LANGUAGE] : '';
        $post->IsVerified = $request->IsVerified[$this->DEFAULT_LANGUAGE] ? $request->IsVerified[$this->DEFAULT_LANGUAGE] : 0;
        $post->FigureCategoryID = $request->FigureCategoryID[$this->DEFAULT_LANGUAGE] ? $request->FigureCategoryID[$this->DEFAULT_LANGUAGE] : null;
        $post->FigureCategoryID = $request->ParentID[$this->DEFAULT_LANGUAGE] ? $request->ParentID[$this->DEFAULT_LANGUAGE] : null;
        $post->PostedBy = Auth::user()->name;
        $post->save();
    
        return response()->json($post);
    }
    

    AJAX

    $('#post-form').submit(function(){
        swal({
          title: 'Are you sure?', 
          type: 'info',
          showCancelButton: true,
          confirmButtonColor: "#DD6B55",
          confirmButtonText: "Confirm!",
          closeOnConfirm: false,
          closeOnCancel: false
          },
            //function
            function(isConfirm){
              if(isConfirm){
                $.ajax({
                  type: "POST",
                  url: "<?php echo url('post'); ?>",
                  data: $('#post-form').serialize(),
                  dataType: 'json',
                })
                .done(function(data){
                  if(data.id){
                      swal({
                        title: "Saved!",
                        text: "Your Post has been saved.",
                        type: "success"}, function(){
                          console.log(data.status);
                      });
                    }else{
                      swal("Try again");
                    }
                    console.log(data);
                })
                .error(function(data){
                    swal("Cancelled", "Please fill the data first.");
                    console.log('Error:', data);
                });
              } else{
                swal("Cancelled");
              }
            //end function
        });
        return false;
    });
    

    在我的迁移中,我使用

    $table->boolean('AllowViewDetail')->default(1);

    但是,当我提交数据时,有一个错误:

    违反。。

    在我的预览中 AllowViewDetail

    1 回复  |  直到 8 年前
        1
  •  0
  •   josephting    8 年前

    AllowViewDetail 被分配了两次。

    您正在分配 PostExpiredDate 允许查看详细信息 .

    我怀疑你 过期后日期