laravel 5没有使用$ request-> all()和Input :: all()获取表单数据

时间:2015-04-06 09:51:22

标签: ajax laravel put

我正在努力更新/创建记录。每当我尝试使用$ .ajax-put发送数据时,表单输入数据在服务器上为空,但我可以看到数据在请求有效负载中发送。

请帮帮我?

修改

表单代码

    <form action="{{ route('dishes_update',$dish_detail->id) }}" action="post" class="form-horizontal" enctype="multipart/form-data" accept-charset="UTF-8">
           <input name="_method" value="PUT" type="hidden"/>
           <input name="_token" type="hidden" value="{{ csrf_token() }}"/>


    </form> 

Ajax逻辑

  $('#dish_create_form form').submit(function(evnt){
            evnt.preventDefault();
            myformdata = new FormData(this);
            $.ajax({
                url: $(this).attr('action'),
                type: "PUT",
                data: myformdata ,//+  $(this).serialize(),
                processData: false,

                contentType:'x-www-url-formurlencoded',
                success: function (res) {
                    //alert(res);
                    myformdata = false;
                    $('#panel_body').html(res);
                }
            });

  });

控制器

 public function update(Request $request, $dish_details_id)
 {
      // validation check
      //dd($_POST);
      // dd($request->input('cuisine_id'));
      dd($request->all(), Input::all());
 }

2 个答案:

答案 0 :(得分:1)

更改为

<form action="{{ route('dishes_update',$dish_detail->id) }}" method="post" class="form-horizontal" enctype="multipart/form-data" accept-charset="UTF-8">
           <input name="_method" value="PUT" type="hidden"/>
           <input name="_token" type="hidden" value="{{ csrf_token() }}"/>
</form> 

答案 1 :(得分:-1)

在发送之前尝试检查数据

UserClass { 
    userMethod() {
        return $data;
    }
}

MyClass {
    myFunction (callback ) {
        doingSomething();
        doingSomething();
        $data = call_user_function($callback);
        return doingSomethingWithData($data);
    }
}