【发布时间】:2022-01-17 04:05:37
【问题描述】:
您好,我正在尝试使用 Laravel 8 从 DB 中的表中更改 2 个值,但由于某种原因,当我按下按钮更新我的数据时,我得到一个 404 未找到。但是我已经定义了路由,当我使用 php artisan routes:list 我也尝试清除所有缓存时它出现在列表中,但它仍然不起作用
我的控制器
public function confirmar_pedido_mentoria(Request $request){
$user = User::findOrFail($request->mentorando_id);
$user -> area_interesse = $request->area_interesse;
$user -> pedido_mentoria = 1;
$user -> update();
return redirect('/admin/pedido_mentoria/{{$user->id}}')->with('msg', 'Pedido realizado com sucesso!');
}
我的路线
Route::get('/admin/pedido_mentoria/{id}', [UsersController::class, 'pedido_mentoria'])->middleware('auth');
Route::put('/admin/confirmar_pedido/{id}', [UsersController::class, 'confirmar_pedido_mentoria'])->middleware('auth');
我把get路由放在这里,因为这是我在更新值后重定向时打算使用的路由
我的刀片视图
<?php
$inter = $user->interesses->pluck('id')->toArray();
?>
<h1 style="font-family: Eczar">Efectuar Pedido de Nova Mentoria: {{$user->user}}</h1>
<div class="col-md-6 offset-md-3">
<form action="/admin/confirmar_pedido/{{$user->id}}" method="POST" enctype="multipart/form-data" name="Form" onsubmit="return validateForm()">
@csrf
@method('PUT')
<div class="form-group">
<p style="font-family: Eczar">Escolha a Área de Interesse</p>
<div class="form-group">
@foreach($interesses as $interesse)
<input type="radio" name="area_interesse[]" class="area_interesse" value="{{$interesse->id}}" @if (in_array($interesse->id, $inter)) checked="checked" @endif > {{$interesse->area_interesse}} <br/>
@endforeach
</div>
<input type="submit" class="btn btn-primary" value="Escolher">
</form>
</div>
【问题讨论】:
-
尝试使用命名路由来保证最安全,或者将链接包装在 route() 函数中
-
输入
mentorando_id来自哪里?您在该方法中的重定向将成为一个问题,因为我怀疑某些东西的“id”为'{{$user->id}}'(因为那是您那里的字符串文字) -
天哪!这对我来说完全是愚蠢的。我没有从任何地方获得«mentorando_id»,所以当然,正如 MH Malekian 所说,我还需要接收 ID 属性。谢谢!我能够解决我的问题
标签: laravel routes laravel-blade