403禁止及以后,此路由不支持GET方法.支持的方法:POST



我正在做一个Laravel项目。一切都在工作,直到我尝试上传图像,同时更新或添加新的支付方式。首先,我得到一个403错误,如果我刷新错误页面,我得到另一个不同的错误:

Symfony 组件 MethodNotAllowedHttpException HttpKernel 异常此路由不支持GET方法。支持的方法:POST

这些错误在控制台显示为

1)Uncaught TypeError: $(...) is not a function
at
2)POST example.com/admin/deposit/gateway/manual/update/1001 403
3)GET example.com/admin/deposit/gateway/manual/update/1001 405

如果省略图像,我不会得到任何错误,但重要的是我添加了它。我已经清除了缓存和所有内容,但似乎没有任何工作。

下面是我的路由定义:

Route::get('deposit/gateway/manual', 'ManualGatewayController@index')->name('deposit.manual.index');
Route::get('deposit/gateway/manual/new', 'ManualGatewayController@create')->name('deposit.manual.create');
Route::post('deposit/gateway/manual/new', 'ManualGatewayController@store')->name('deposit.manual.store');
Route::get('/deposit/gateway/manual/edit/{alias}', 'ManualGatewayController@edit')->name('deposit.manual.edit');
Route::post('deposit/gateway/manual/update/{id}', 'ManualGatewayController@update')->name('deposit.manual.update');
Route::post('deposit/gateway/manual/activate', 'ManualGatewayController@activate')->name('deposit.manual.activate');
Route::post('deposit/gateway/manual/deactivate', 'ManualGatewayController@deactivate')->name('deposit.manual.deactivate');

控制器:

public function edit($alias)
{
$page_title = 'New Manual Deposit Method';
$method = Gateway::manual()->with('single_currency')->where('alias', $alias)->firstOrFail();
return view('admin.gateway_manual.edit', compact('page_title', 'method'));
}
public function update(Request $request, $code)
{
$validation_rule = [
'name'           => 'required|max: 60',
'image'          => 'nullable|image',
'image'          => [new FileTypeValidate(['jpeg', 'jpg', 'png'])],
'rate'           => 'required|gt:0',
'currency'       => 'required',
'min_limit'      => 'required|gt:0',
'max_limit'      => 'required|gte:0',
'fixed_charge'   => 'required|gte:0',
'percent_charge' => 'required|between:0,100',
'instruction'    => 'required|max:64000'
];
$request->validate($validation_rule);
$method = Gateway::manual()->where('code', $code)->firstOrFail();
$filename = $method->image;
$path = imagePath()['gateway']['path'];
$size = imagePath()['gateway']['size'];
if ($request->hasFile('image')) {
try {
$filename = uploadImage($request->image, $path, $size);
} catch (Exception $exp) {
$notify[] = ['error', 'Image could not be uploaded.'];
return back()->withNotify($notify);
}
}
$input_form = [];
if ($request->has('field_name')) {
for ($a = 0; $a < count($request->field_name); $a++) {
$arr = array();
$arr['field_name'] = strtolower(str_replace(' ', '_', trim($request->field_name[$a])));
$arr['field_level'] = trim($request->field_name[$a]);
$arr['type'] = $request->type[$a];
$arr['validation'] = $request->validation[$a];
$input_form[$arr['field_name']] = $arr;
}
}
$method->update([
'name' => $request->name,
'alias' => strtolower(trim(str_replace(' ','_',$request->name))),
'image' => $filename,
'parameters' => json_encode([]),
'supported_currencies' => json_encode([]),
'crypto' => 0,
'description' => $request->instruction,
'input_form' => $input_form,
]);

$method->single_currency->update([
'name' => $request->name,
'gateway_alias' => strtolower(trim(str_replace(' ','_',$method->name))),
'currency' => $request->currency,
'symbol' => '',
'min_amount' => $request->min_limit,
'max_amount' => $request->max_limit,
'fixed_charge' => $request->fixed_charge,
'percent_charge' => $request->percent_charge,
'rate' => $request->rate,
'image' => $filename,
'gateway_parameter' => json_encode($input_form),
]);
$notify[] = ['success', $method->name . ' Manual Gateway has been updated.'];
return redirect()->route('admin.deposit.manual.edit',[$method->alias])->withNotify($notify);
}

Edit.blade.php

<form action="{{ route('admin.deposit.manual.update', $method->code) }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="card-body">
<div class="payment-method-item">
<div class="payment-method-header d-flex flex-wrap">
<div class="thumb">
<div class="avatar-preview">
<div class="profilePicPreview"
style="background-image: url('{{getImage(imagePath()['gateway']['path'].'/'. $method->image)}}')"></div>
</div>
<div class="avatar-edit">
<input type="file" name="image" class="profilePicUpload" id="image"
accept=".png, .jpg, .jpeg"/>
<label for="image" class="bg--primary"><i class="la la-pencil"></i></label>
</div>
</div>
<div class="content">
<div class="row mt-4">
<div class="col-sm-12 col-md-6 col-lg-6 col-xl-4 mb-15">
<div class="input-group">
<label class="w-100 font-weight-bold">@lang('Gateway Name') <span
class="text-danger">*</span></label>
<input type="text" class="form-control " placeholder="@lang('Method Name')" name="name"
value="{{ $method->name }}"/>
</div>
</div>
<div class="col-xl-3 col-md-6">
<div>
<label class="w-100 font-weight-bold">@lang('Currency') <span
class="text-danger">*</span></label>
<input type="text" name="currency" class="form-control border-radius-5"
value="{{ @$method->single_currency->currency }}"/>
</div>
</div>
<div class="col-xl-5 col-md-12">
<label class="w-100 font-weight-bold">@lang('Rate') <span
class="text-danger">*</span></label>
<div class="input-group has_append" style="max-width: 100%">
<div class="input-group-prepend">
<div class="input-group-text">1 {{ trans($general->cur_text) }} =</div>
</div>
<input type="text" class="form-control" placeholder="0" name="rate"
value="{{ getAmount(@$method->single_currency->rate) }}"/>
<div class="input-group-append">
<div class="input-group-text"><span class="currency_symbol"></span>
</div>
</div>
</div>
</div>
</div>

</div>
</div>
<div class="payment-method-body">
<div class="row">
<div class="col-lg-6">
<div class="card border--primary mt-3">
<h5 class="card-header bg--primary">@lang('Range')</h5>
<div class="card-body">
<div class="input-group mb-3">
<label class="w-100 font-weight-bold">@lang('Minimum Amount') <span
class="text-danger">*</span></label>
<div class="input-group-prepend">
<div class="input-group-text">{{ trans($general->cur_text) }}</div>
</div>
<input type="text" class="form-control" name="min_limit"
placeholder="0" value="{{ getAmount(@$method->single_currency->min_amount) }}"/>
</div>
<div class="input-group">
<label class="w-100 font-weight-bold">@lang('Maximum Amount') <span
class="text-danger">*</span></label>
<div class="input-group-prepend">
<div class="input-group-text">{{ trans($general->cur_text) }}</div>
</div>
<input type="text" class="form-control" placeholder="0"
name="max_limit" value="{{ getAmount(@$method->single_currency->max_amount) }}"/>
</div>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="card border--primary mt-3">
<h5 class="card-header bg--primary">@lang('Charge')</h5>
<div class="card-body">
<div class="input-group mb-3">
<label class="w-100 font-weight-bold">@lang('Fixed Charge') <span
class="text-danger">*</span></label>
<div class="input-group-prepend">
<div class="input-group-text">{{ trans($general->cur_text) }}</div>
</div>
<input type="text" class="form-control" placeholder="0"
name="fixed_charge" value="{{ getAmount(@$method->single_currency->fixed_charge) }}"/>
</div>
<div class="input-group">
<label class="w-100 font-weight-bold">@lang('Percent Charge') <span
class="text-danger">*</span></label>
<div class="input-group-prepend">
<div class="input-group-text">%</div>
</div>
<input type="text" class="form-control" placeholder="0"
name="percent_charge" value="{{ getAmount(@$method->single_currency->percent_charge) }}">
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="card border--dark mt-3">
<h5 class="card-header bg--dark">@lang('Deposit Instruction')</h5>
<div class="card-body">
<div class="form-group">
<textarea rows="8" class="form-control border-radius-5 nicEdit"
name="instruction">{{ @$method->description  }}</textarea>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="card border--dark mt-3">
<h5 class="card-header bg--dark  text-white">@lang('User data')
<button type="button"
class="btn btn-sm btn-outline-light float-right addUserData"><i
class="la la-fw la-plus"></i>@lang('Add New')
</button>
</h5>
<div class="card-body">
<div class="row addedField">
@if($method->input_form != null)
@foreach($method->input_form as $k => $v)
<div class="col-md-12 user-data">
<div class="form-group">
<div class="input-group mb-md-0 mb-4">
  <div class="col-md-4">
      <input name="field_name[]" class="form-control" type="text" value="{{$v->field_level}}" required placeholder="@lang('Field Name')">
  </div>
  <div class="col-md-3 mt-md-0 mt-2">
      <select name="type[]" class="form-control">
          <option value="text" @if($v->type == 'text') selected @endif> @lang('Input Text') </option>
          <option value="textarea" @if($v->type == 'textarea') selected @endif> @lang('Textarea') </option>
          <option value="file" @if($v->type == 'file') selected @endif> @lang('File upload') </option>
      </select>
  </div>
  <div class="col-md-3 mt-md-0 mt-2">
      <select name="validation[]"
              class="form-control">
          <option value="required" @if($v->validation == 'required') selected @endif> @lang('Required') </option>
          <option value="nullable" @if($v->validation == 'nullable') selected @endif>  @lang('Optional') </option>
      </select>
  </div>
  <div class="col-md-2 mt-md-0 mt-2 text-right">
      <span class="input-group-btn">
          <button class="btn btn--danger btn-lg removeBtn w-100" type="button">
              <i class="fa fa-times"></i>
          </button>
      </span>
  </div>
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>

</div>
</div>
</div>
</div>
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn--primary btn-block ">@lang('Save Method')</button>
</div>
</form>

error_log

[09-Sep-2021 23:42:56 UTC] PHP Warning:  require(/home/gcryjcwa/public_htmlcorevendorautoload.php): failed to open stream: No such file or directory in /home/gcryjcwa/public_html/index.php on line 34
[09-Sep-2021 23:42:56 UTC] PHP Fatal error:  require(): Failed opening required '/home/gcryjcwa/public_htmlcorevendorautoload.php' (include_path='.:/opt/alt/php73/usr/share/pear') in /home/gcryjcwa/public_html/index.php on line 34
[09-Sep-2021 23:43:19 UTC] PHP Warning:  require(/home/gcryjcwa/public_html/corevendorautoload.php): failed to open stream: No such file or directory in /home/gcryjcwa/public_html/index.php on line 34
[09-Sep-2021 23:43:19 UTC] PHP Warning:  require(/home/gcryjcwa/public_html/corevendorautoload.php): failed to open stream: No such file or directory in /home/gcryjcwa/public_html/index.php on line 34
[09-Sep-2021 23:43:19 UTC] PHP Fatal error:  require(): Failed opening required '/home/gcryjcwa/public_html/corevendorautoload.php' (include_path='.:/opt/alt/php73/usr/share/pear') in /home/gcryjcwa/public_html/index.php on line 34

我真的很感激你的帮助。

对于high probably,您可能希望首先在该项目的目录中运行composer install。这将安装依赖项并呈现它无法找到的autoloader.php。所有其他错误消息可能是假的(由于缺少autoloader.php而导致的后续错误)。

最新更新