提交选择框时,我收到的方法不允许出错 我从视图发送文件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>
我的路线:
路线::得到( 'uploadHome', 'ExcelController @ showUpload');
Route :: POST('importExcelFile','ExcelController @ importExcel');
/ * Route :: match(['get','post'],'uploadExcelFile','ExcelController @ uploadExcelData'); * /
Route :: POST('uploadExcelFile','ExcelController @ uploadExcelData');
答案 0 :(得分:1)
假设你仔细检查了这个:
如果我使用dd($ excelData)我正在获取数据,路由工作正常。
我认为问题可能在这里:
return back();
我认为你的路线动词有些乱七八糟。所以你可以试着像这样重定向:
return redirect('/my-route-that-works');
如果这仍然不起作用,你也应该发布你的路线文件,因为在这种情况下,我认为你的路线不是&#34;工作正常&#34;。
阅读您的评论和更新,似乎您用大写写了Route::POST
,这不是正确的方法。尝试更换:
Route::POST
人:
Route::post