【发布时间】:2017-12-10 02:44:26
【问题描述】:
我在提交选择框时遇到方法不允许错误。
我正在从视图中发送文件 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');
【问题讨论】:
-
发布刀片文件
-
@Exprator 我做了你现在可以检查一下
-
方法错误是什么?像 404 还是 403??
-
@Exprator 我添加了我的错误图像,你可以检查一下
-
控制器中的 return back() 出现错误,发布后您试图再次返回,因此将其更改为重定向返回或重定向到其他路由