Laravel分类目录应用审核广告无报错但返回404问题求助
问题排查与解决方案
核心问题1:Form标签属性拼写错误
你编写的两个审核表单错误将method提交方法属性写为了action,同时出现了两个action属性:
<!-- 错误写法 --> <form action="post" action="{{route('revisor.accept', $ad->id)}}">
浏览器读取标签时会优先识别第一个action属性,导致表单直接提交到/post路径,完全没有命中你定义的审核路由,这就是你看到404、请求没有进入控制器的直接原因。
修复方案:将第一个action改为method即可:
<!-- 正确写法 --> <form method="post" action="{{route('revisor.accept', $ad->id)}}"> <form method="post" action="{{route('revisor.reject', $ad->id)}}">
核心问题2:控制器方法未接收路由参数
你定义的路由包含{id}路径参数,但是accept和reject方法没有声明接收该参数,修复表单问题后仍然会抛出参数缺失错误。
修复方案:给两个方法补充$id入参:
public function accept($id){ return $this->setAccepted($id,true); } public function reject($id){ return $this->setAccepted($id,false); }
可选优化建议
建议将setAccepted方法中的find改为findOrFail,避免传入不存在的广告ID时抛出500错误:
public function setAccepted($id,$value){ $ad=Ad::findOrFail($id); $ad->is_accepted=$value; $ad->save(); return redirect(route('revisor')); }
内容的提问来源于stack exchange,提问作者gianmarco varrone
相关产品推荐
相关产品推荐

