Laravel 8 - 表单操作重定向到 404 页面
Laravel 8 - Form action redirect to 404 page
当我想从表单发送一些数据时出现错误 (404 - NOT FOUND),我多次检查控制器、路由和视图。
- 管理员点击按钮将状态 post 从批准更改为
拒绝,否则适得其反
PostController.php
public function changeStatus(Post $id){
$status_update=new Post;
$status_update->findOrFail($id)->status->get();
if ($status_update ==1){
$status_update->update(['status'=>0]);
session::flash('message', 'It has been updated');
return back();
}elseif ($status_update->status==0){
$status_update->update(['status'=>1]);
return back();
}
return back();
}
Route:web.php
Route::middleware('role:admin')->group(function (){
Route::PATCH('supervisor/{$id}/update',[PostController::class,'changeStatus'])->name('admin.posts.changeStatus');
});
风景
<form method="post" action="{{route("admin.posts.changeStatus",$post->id)}}">
@method('PATCH')
@csrf
@if($post->status==1)
<button type="submit" value="0" class="btn btn-gold">change status to reject </button>
@else
<button type="submit" value="1" class="btn btn-primary">change the status to approve
</button>
@endif
</form>
我已经解决了@lagbox 的问题。谢谢@lagbox。
以及路线中显示的我的问题的解决方案:web.php.
route parameters don't have $ in their name ... supervisor/{id}/update
当我想从表单发送一些数据时出现错误 (404 - NOT FOUND),我多次检查控制器、路由和视图。
- 管理员点击按钮将状态 post 从批准更改为 拒绝,否则适得其反
PostController.php
public function changeStatus(Post $id){
$status_update=new Post;
$status_update->findOrFail($id)->status->get();
if ($status_update ==1){
$status_update->update(['status'=>0]);
session::flash('message', 'It has been updated');
return back();
}elseif ($status_update->status==0){
$status_update->update(['status'=>1]);
return back();
}
return back();
}
Route:web.php
Route::middleware('role:admin')->group(function (){
Route::PATCH('supervisor/{$id}/update',[PostController::class,'changeStatus'])->name('admin.posts.changeStatus');
});
风景
<form method="post" action="{{route("admin.posts.changeStatus",$post->id)}}">
@method('PATCH')
@csrf
@if($post->status==1)
<button type="submit" value="0" class="btn btn-gold">change status to reject </button>
@else
<button type="submit" value="1" class="btn btn-primary">change the status to approve
</button>
@endif
</form>
我已经解决了@lagbox 的问题。谢谢@lagbox。 以及路线中显示的我的问题的解决方案:web.php.
route parameters don't have $ in their name ... supervisor/{id}/update