簡體   English   中英

在laravel 5.5中提交表單時302狀態正在獲取。 提交表單頁面后重定向

[英]302 status is getting when submit form in laravel 5.5. After submit the form page is redirecting back

我有一個表格,輸入在循環內。 每個輸入都使用Laravel驗證數組方法進行驗證 目前,我提交的名稱為name="guest[{{ $cart->_id }}][sleeps]"name="guest[{{ $cart->_id }}][comments]" 對於每個輸入,驗證工作正常。 但是數據沒有提交到控制器頁面。 提交頁面后被重定向回。 我正在獲得http 302 status 我已附上Chrome控制台結果。 提交表單時,我們如何將數據提交給控制器?

如果我更改名稱,例如name="sleeps[]"name="comments[]" ,數據將發布到控制器中。 任何幫助,將不勝感激。

routes.php文件

Route::post('/cart/store', 'CartController@store')->name('cart.store');

HTML

<form action="{{ route('cart.store') }}" method="post">

 {{ csrf_field() }}

<div class="panel panel-default text-left panel-booking1 panel-default-booking1">
    @forelse($carts as $key => $cart)
    <div class="col-sm-4 col-sm-4-booking1 form-group {{ $errors->has('guest.*.sleeps') ? ' has-error' : '' }}">
        <label>Sleep(s)</label>

        <select class="form-control form-control-booking1 jsBookCalSleep"  name="guest[{{ $cart->_id }}][sleeps]">
        <option value="">Choose Sleep(s)</option>
        @for($i = 1; $i <= 30; $i++)
           <option value="{{ $i }}" @if($i == $cart->sleeps) selected @endif>{{ $i }}</option>
        @endfor
        </select>

        @if ($errors->has('guest.*.sleeps'))
             <span class="help-block"><strong>{{ $errors->first('guest.*.sleeps') }}</strong></span>
        @endif
    </div> 

    <div class="col-sm-4 col-sm-4-f-booking1 comment-booking1 col-sm-4-booking1">
       <div class="form-group {{ $errors->has($inputComments) ? ' has-error' : '' }}">
         <textarea id="comments_{{ $cart->_id }}" name="guest[{{ $cart->_id }}][comments]" class="form-control" rows="3" maxlength="300" placeholder="Comment...">{{ old($inputComments) }}</textarea>

         @if ($errors->has($inputComments))
           <span class="help-block"><strong>{{ $errors->first($inputComments) }}</strong></span>
         @endif

      </div>
    </div> 

    @empty
      <p>No bookings in your cart</p>
    @endforelse

<div>
<div id="btn-ground-2-booking1">
    <button type="submit" class="btn btn-default-booking1 btn-default btn-sm btn-details btn-details-booking1"><span class="glyphicon glyphicon-credit-card" style="font-size: 14px;" aria-hidden="true"></span> Payment</button>
</div>
</div>
</form>

CartRequest.php

public function rules()
    {
        return [
            'guest.*.sleeps'     => 'required|not_in:0',
            'guest.*.comments'   => 'max:300',
        ];
    }

CartController.php

public function store(CartRequest $request)
    {
        dd($request->all());
    }

在此處輸入圖片說明

你可以試試:

public function rules()
{
    $rules = [
        'guest' => 'array'
    ];
    foreach($this->request->get('guest') as $key => $val){
        $rules['guest.'.$key.'. sleeps'] = 'required|not_in:0';
        $rules['guest.'.$key.'. comments'] = 'max:300';
    }
    return $rules;
}

希望對您有幫助。

302是重定向代碼。執行類似這樣的操作

Route::post('/cart/store', 'CartController@store')->name('cart.store'); 
Replace the form tag by below line and check it.

<?php echo Form::open(['url' => '/cart/store', 'method' => 'post']); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM