我试图从控制器中调用更新方法,该控制器已定义了所有路由(一旦定义了其中的一条路由,是否可以使用资源定义路由?出现错误...),但是正确的知道,即使我在其他工作路线和视图中使用相同的代码,也遇到了错误。 您能帮我找出错误吗? 预先感谢。
路线(所有其他路线都可以,但是可以更新)。
Route::get('notas/notasGet/', 'NotasController@notasGet')->name('notas.notasGet');
Route::post('notas/notasPost/', 'NotasController@notasPost')->name('notas.notasPost');
Route::get('notas/create/', 'NotasController@create')->name('notas.create');
Route::get('notas/store/', 'NotasController@store')->name('notas.store');
Route::post('notas/update/{id}', 'NotasController@update')->name('notas.update');
实际上我在参数方面还没有成功,但是假设它会在调用完成后出现。
控制器(尖端的解决方案)
public function update(Request $request, Nota $nota)
{
//
}
视图
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
<h1 class="h5">Nota de venta</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group mr-2">
<button class="btn btn-sm btn-outline-secondary">Exportar</button>
</div>
</div>
</div>
<div class="border-bottom">
<div class="col-md-8 order-md-1 ">
<form method="post" action="{{ route('notas.update',[$nota->idNota]) }}">
{{ csrf_field() }}
<input type="hidden" name="_method" value="PUT">
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="true"> Pagada
</label>
</div>
<div class="col-md-12">
<label for="usuario">Usuario</label>
<select class="custom-select d-block w-100" id="usuario">
<option value="">Selecciona...</option>
<option>United States</option>
</select>
<div class="invalid-feedback">
Please select a valid country.
</div>
</div>
<p>
<div class="form-group">
<label for="strNota">Comentarios</label>
<textarea class="form-control" rows="3" id="strNota" name="text"></textarea>
</div>
</p>
<p>
<hr class="mb-4">
<div >
<button type="submit" class="btn btn-primary" id="submitForm">Guardar cambios <br> en la venta</button>
</div>
</p>
</form>
</div>
</div>
更新调用来自创建调用,我将代码发布在此处,并且属于同一控制器。
public function create()
{
//
$lockers = null;
$lockers = Locker::all();
$eventos = null;
$eventos = Evento::all();
$cajaAbierta = Caja::whereRaw('dtmCorte IS NULL')->get()->first();
$currentTime = Carbon::now('-5:00');
$cargos = null;
$cargos = Cargo::all();
$productos = ProductoServicioEvento::all();
if($cajaAbierta)
{
$nota = Nota::create(
[
'idCaja'=>$cajaAbierta->idCaja,
'idRealiza'=>$cajaAbierta->idUsuario,
'dtmHoraCargo'=>$currentTime,
]
);
if($nota)
{
// return redirect()->route('grupos.index')->with('success','Grupo creado con éxito');
return view('notas.create',['lockers'=>$lockers,'eventos'=>$eventos,'nota'=>$nota, 'cargos'=>$cargos,'productos'=>$productos]);
}
}
}
在导航器上,单击“ Guardar cambios en la venta”按钮时进行的测试。
错误。
答案 0 :(得分:1)
您已将Method
更改为PUT
<input type="hidden" name="_method" value="PUT">
但是您在这里将Route
定义为POST
Route::post('notas/update/{id}', 'NotasController@update')->name('notas.update');
这就是原因
此处不允许方法异常
只需将您的路线更改为PUT
Route::put('notas/update/{id}', 'NotasController@update')->name('notas.update');