提交选择框时出现方法不允许错误。
我正在从视图中发送文件 url 和数组。我从控制器打印这些值它工作正常但是当尝试插入数据库时我收到一个错误 MethodNotAllowedHttpException。如果我使用 dd( $excelData) 我正在获取数据,则路线工作正常。
public function uploadExcelData(Request $request)
{
$url = request('link');
$array = request('index');
print_r($array);
echo $url;
$excelData = (Excel::load($url))->get();
if(!empty($excelData) && $excelData->count()){
foreach ($excelData->toArray() as $key => $value) {
if(!empty($value)){
$insert[] = ['JobTitle' => $value[$array[0]], 'Skills' => $value[$array[1]],
'Package'=>$value[$array[2]],"Location"=>$value[$array[3]]];
}
}
if(!empty($insert)){
Jobposting::insert($insert);
return back();
}else{
echo "empty";
}
}
}
这是刀片文件
<?php
//print_r($excelHeaders);
// print_r($dbHeaders);
// @dd($excelData);
//echo $url; onsubmit="return insertOrder();"
?>
<form action="{{ URL::to('uploadExcelFile') }}" class="form-horizontal" method="POST" onsubmit="return insertOrder();">
{{ csrf_field() }}
<table>
@for ($i=1; $i < sizeof($dbHeaders); $i++)
<tr>
<td> <input type="text" name="" value="{{$dbHeaders[$i]}}" disabled="disabled" class="droptargetinputs inputfields">
<!-- <input type="hidden" name="{{$dbHeaders[$i]}}" id="{{$dbHeaders[$i]}}" value=""> -->
</td>
<td>
<select class="order">
<option>Select</option>
@for ($j=1; $j < sizeof($excelHeaders); $j++)
<option value="{{ $excelHeaders[$j]}}">{{ $excelHeaders[$j]}}</option>
@endfor
</select>
<input type="hidden" name="link" value="{{$url}}">
</td>
</tr>
@endfor
<tr><td><input type="submit" name="submit" value="click"></td><td><!-- <input type="button" name="submit"
onclick="insertOrder()" value="mapping"> --></tb></tr>
</table>
<div id="hidden"></div>
</form>
<script type="text/javascript">
function insertOrder(){
var table = document.getElementsByClassName("order");
var array = Array();
for(i=0; i<table.length; i++){
// array[i] = table[i].value;
// alert(array);
var hide = document.createElement("INPUT");
hide.type ="hidden";
hide.value = table[i].value;
hide.name = "index[]";
var attach = document.getElementById('hidden');
attach.appendChild(hide);
}
}
</script>
</body>
我的路线:
Route::get('uploadHome','ExcelController@showUpload');
Route::POST('importExcelFile', 'ExcelController@importExcel');
/*Route::match(['get', 'post'],'uploadExcelFile', 'ExcelController@uploadExcelData'); */
Route::POST('uploadExcelFile', 'ExcelController@uploadExcelData');
假设您仔细检查了这一点:
如果我使用 dd( $excelData) 我正在获取数据,则路线工作正常。
我认为问题可能出在这里:
return back();
我认为您的路线动词某处乱七八糟。所以你可以尝试像这样重定向:
return redirect('/my-route-that-works');
如果这仍然不起作用,您也应该发布您的路线文件,因为在这种情况下,我认为您的路线“工作不正常”。
阅读您的评论和更新,您似乎是Route::POST
用大写字母写的,这不是正确的方式。尝试更换:
Route::POST
经过:
Route::post
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句