这里有专家吗?这是我面临的一个非常奇怪的问题。
我的网站托管在aws机器上。该代码在这里工作得很好。然后将其转移到另一台服务器上,此奇怪的问题消失了。
我有更新汽车的路线
Route::put('vehicles/{vehicle}', 'VehicleController@update');
编辑表单
{!! Form::model($vehicle, ['url' => ['backend/vehicles', $vehicle->id], 'method' => 'put','files' => true , 'class' => 'form-horizontal form-label-left', 'role' => 'form']) !!}
@include( 'backend.vehicles.form' )
{!! Form::close() !!}
现在,每当我尝试更新在服务器移动之前创建的汽车时,奇怪的行为便从这里开始,它向我展示RouteCollection.php中的MethodNotAllowedHttpException
但是当我创建汽车并更新此新汽车时,Operation成功。请帮忙。
还有一件事情,在routeCollection.php中,它与请求的路线相匹配,显示了旧车的GET方法,而新车的put方法
public function match(Request $request){
// die($request->getMethod()); $routes = $this->get($request->getMethod());
$route = $this->check($routes, $request);
if (! is_null($route)) {
return $route->bind($request);
}
// If no route was found we will now check if a matching route is specified by
// another HTTP verb. If it is we will need to throw a MethodNotAllowed and
// inform the user agent of which HTTP verb it should use for this route.
$others = $this->checkForAlternateVerbs($request);
if (count($others) > 0) {
return $this->getRouteForMethods($request, $others);
}
throw new NotFoundHttpException;
}
请任何人。
答案 0 :(得分:0)
将此添加到表单中
from ftplib import FTP
import time
import os
session = FTP('Host', 'user', 'passwd')
path = "D:/directory_image"
FichList = os.listdir( path )
for image_name in FichList: #Iterate Each File
jpg_to_send = os.path.join(path, image_name) #Form full path to image file
file_open = open(jpg_to_send, 'rb')
session.storbinary('STOR '+ image_name, file_open)
file_open.close()
或HTML
{{ method_field('PUT') }}
答案 1 :(得分:0)
请尝试以下解决方案:
Route::put('vehicles/{vehicle}', 'VehicleController@update');
更改为
Route::match(['put', 'patch'], 'vehicles/{vehicle}', 'VehicleController@update');
和表格
{!! Form::model($vehicle, ['action' => ['VehicleController@update', $vehicle->id], 'method' => 'put','files' => true , 'class' => 'form-horizontal form-label-left', 'role' => 'form']) !!}
@include( 'backend.vehicles.form' )
{!! Form::close() !!}
它对您有用吗?
答案 2 :(得分:0)
希望这对某人有帮助。
所以这不是与laravel相关的问题。问题出在一个名为description的字段中,其中包含一些字符,这些字符正在处理与请求一起发送的数据(从put到get的更改方法)。
使用新车的唯一原因是,当我们创建新车时,我们将描述字段留空,然后测试更新,因为旧车的描述时间很长。我们很快意识到,如果我们试图用这样的描述来创建一辆新车,那也是行不通的。
因此,我们使用一些JavaScript,单击“更新/创建”按钮时暂停了更新/添加请求,对描述进行了编码,然后继续进行表单提交。在服务器端,对其进行解码并保存。
编辑: 这仍然没有完全解决。