我試圖創建一個搜索表單,用戶必須從某些下拉菜單中進行選擇並在幾個字段之一中輸入文本。問題是我正在重新顯示搜索頁面,其結果在下面。要做到這一點,我不重定向,我只是返回一個視圖與我需要壓縮的數據集一起。成功驗證後重新填充用戶輸入
有沒有什麼辦法可以檢索輸入,類似於在驗證失敗後重定向時,如何執行Input :: old('x')?
的路線是:
Route::get('search', ['as' => 'main.search.get', 'uses' => '[email protected]']);
Route::post('search', ['as' => 'main.search.post', 'uses' => '[email protected]']);
的代碼示例中,我的觀點:
{!! Form::open(array('route' => 'main.search.post', 'class' => 'form-inline align-form-center', 'role' => 'form')) !!}
<div class="form-group">
{!! Form::label('product_code', 'Product Code: ',['class' => 'control-label label-top']) !!}
{!! Form::text('product_code', Input::old('product_code'), ['class' => 'form-control input-sm']) !!}
</div>
所以當你提交一個搜索,它調用showSearchResults,然後返回一個視圖,如果它成功,如果它沒有通過我的SearchRequest類進行驗證,它將被重定向到main.search.get路徑,打印錯誤並將輸入返回到字段。
我已經做了很多搜索,並且已經或多或少空手而過,如果有一種方法可以說 - > withInput()返回視圖(而不是重定向)或其他東西。
目前我唯一的解決方案是Input :: flash(),但由於我沒有重定向,所以數據仍然存在額外的刷新。在這一點上這不是什麼大問題,但我想知道是否有其他人有更好的解決方案。
編輯 - 從控制器下面的代碼,其中返回視圖:
...
Input::flash();
return view('main.search', compact('results', 'platformList', 'versionList', 'customerList', 'currencyList', 'customer', 'currency'));
}
謝謝
你可以顯示控制器的方法代碼嗎?看起來你在重定向之前忘記了一步,因爲laravel實際上可以做到這一點。 – manix
我沒有重定向,我正在返回一個視圖,這就是我遇到問題的原因,我沒有重定向,只是返回視圖。 – hughjidette
你使用的是JavaScript嗎?當您返回視圖時,我沒有看到代碼 – manix