【问题标题】:$request->input returns null laravel 8$request->input 返回 null laravel 8
【发布时间】:2021-11-15 08:39:31
【问题描述】:

我有一个包含 3 个字段的表单 - 开始日期、结束日期和模式。我想从输入中选择值并检查它们是否为空。如果不是,则比较日期并执行操作。当我尝试在 $status 中传递值 `$request->input('from')` 时,它返回 null。

我的表格:

<div class="modal-body">
    <form action="App\Http\Controllers\HolidayController@addSchedule" method="POST" autocomplete="off" id="scheduleForm">
           @include('partials.holidayFormModal')
    </form>
 </div>

holidayForm模态:

    <link rel="stylesheet" href="{{ url('assets/custom/css/schedule/scheduleForm.css') }}">

<div class="form-group row col-md-12 date-picker">
    <label class="col-sm-2 date-picker-label" for="from">
        {{ __('messages.schedule_period') }}
    </label>
    <div class="input-group col-sm-4">
        <input class="form-control" id="start_datepicker" type="text" name="from" autocomplete="off" readonly>
        <span class="input-group-addon">
            <i class="fas fa-calendar-alt"></i>
        </span>
    </div>
    <div class="col-sm-2"></div>
    <div class="input-group col-sm-4">
        <input class="form-control" id="end_datepicker" type="text" name="to" autocomplete="off" readonly>
        <span class="input-group-addon">
            <i class="fas fa-calendar-alt"></i>
        </span>
    </div>
</div>
<div class="form-group row col-md-12 motif-picker">
    <label class="col-sm-2 motif-label" for="meotif">
        {{ __('messages.schedule_motif') }}
    </label>
    <input class="form-control col-sm-10" type="text" id="motif" name="motif" max="60">
</div>
<div class="col-md-11"></div>
<div class="col-md-1" id="schedule-submit">
    <button class="btn" type="button" id="schedule_form_submit_button">
        <i class="fas fa-check-circle fa-3x"></i>
    </button>
</div>

web.php:

Route::get('/holidays', ['uses' => $controllerNamespace . 'HolidayController@index', 'as' => 'holidays']);
Route::post('/holidayAdd',['uses' => $controllerNamespace . 'HolidayController@addSchedule', 'as' => 'holidayAdd']);

假日控制器:

public function addSchedule(Request $request) {
    $scheduleModelObj = new ScheduleModel;
    $scheduleModelObj->from = $request->from;
    $scheduleModelObj->to = $request->to;
    $scheduleModelObj->motif = $request->motif;
    
    $fromDate = str_replace('/', '-', $request->from);
    $toDate = str_replace('/', '-', $request->to);

    $f = date('Y-m-d', strtotime($fromDate));
    $t = date('Y-m-d', strtotime($toDate));

    if ($f == '' || $t == '' || $scheduleModelObj->motif == '') {
        $returnMessage['date'] = __('messages.schedule_end_date_error');
        $returnMessage['motif'] = __('messages.schedule_motif_error');
        $status = 'error';
    } else {
        if ($f < $t) {
            $scheduleModelObj->searchSchedule($scheduleModelObj->from, $scheduleModelObj->to);
            $status = 'success';
        }
        $returnMessage['date'] = __('messages.schedule_end_date_error');
        $returnMessage['motif'] = __('messages.schedule_motif_error');
        $status = 'error';
    }
    return ['status' => $status, 'message' => $returnMessage];
}

【问题讨论】:

  • "当我尝试在 $status 中传递值 $request-&gt;input('from') 时,它返回 null" - 我没有看到任何执行此操作的代码?您是否尝试过一些调试,例如您的addSchedule() 方法中的dd($request) 将向您准确显示收到的内容。检查您的浏览器开发工具,单击网络选项卡,然后单击 POST,这些字段是否按预期发送?

标签: php laravel eloquent


【解决方案1】:

试试这个:

<div class="modal-body">
    <form action="{{route('holidayAdd')}}" method="POST" autocomplete="off" id="scheduleForm">
           @include('partials.holidayFormModal')
    </form>
 </div>

【讨论】:

  • OP为什么要“试试这个”?你改变了什么?出了什么问题?
  • 您应该在 action 属性中添加您的路线名称。
  • 我试过这个,但它仍然给我 null。输入值没有被拾取,我不知道为什么。
  • 在客户端调试表单以检查问题出在后端还是客户端。
  • 如果您回答问题,请始终说明您所做的更改以及解决问题的原因。在某些情况下,复制/粘贴您的答案可以解决问题,但 OP(和其他有相同问题的人)不会从中学到任何东西。
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2017-11-19
  • 2018-04-21
  • 2019-08-11
  • 1970-01-01
  • 2014-11-09
相关资源
最近更新 更多