laravel请求将输入作为数组键名返回,其值为空

时间:2017-04-21 09:17:16

标签: php arrays laravel httprequest

我有一个表单,通过laravel中的Ajax发送请求 来自我的控制器的此片段返回 null

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      dd($request->input('statusBody'));  

然而,这将返回一个数组,statusBody作为具有空值的键名

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      dd($request->input());  

这是返回的结果

array:1 [▼
  "This_is_a_sample_status" => null
]  

终于会返回正确的值

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      $val = $request->input('statusBody');
      dd(array_search($val, $request->all()));  

我的问题是:为什么会发生这种情况? 为什么$request->input('name')没有按预期返回值?
更新:
这也是成功将所需结果记录到控制台

的Ajax功能
var statusBody = $('#statusBody').val();
      $.ajax({
        type: "POST",
        url: 'status',
        data: statusBody,
        success: function(data){
          console.log(statusBody);
        }
      });

1 个答案:

答案 0 :(得分:0)

我尝试在一个新的laravel应用程序中重现问题,我发现了什么错误。
Ajax函数中的data参数需要一个像这样的

的dataString
var statusBody = $('#status').val();
      var dataString = "status="+statusBody;
      $.ajax({
        type: "POST",
        url: 'status',
        data: dataString
      });

感谢Antonis指出Ajax调用