存储数据时找不到 404 laravel 8
404 not found when storing data laravel 8
当我点击提交按钮时 returns 带有 404 页面的路由
这是blade
<form method="POST" action="{{ route('comment.store') }}" >
@csrf
<input type="text">
<button type="submit">Add comment</button>
</form>
评论管理员:
class CommentController extends Controller
{
public function __construct() {
$this->middleware('auth');
}
public function store(Request $request)
{
$film = Film::findOrFail($request->film_id);
Comment::create([
'comment' => $request->comment,
'user_id' => Auth::id(),
'post_id' => $film->id
]);
return redirect()->route('showFilm', $film->id);
}
}
这是我的 web.php:
Route::post('comment/store', [CommentController::class, 'store'])->name('comment.store');
你的findOrFail()
方法return这个404错误,导致$request->film_id
为空
发生这种情况是因为您正在使用 findOrFail()
方法,顾名思义,如果找到模型,它将 return 您的模型,否则,您会显示 404 页面。您应该在存储方法
中验证 film_id
编辑:在您的视图film_id中添加隐藏输入
<form method="POST" action="{{ route('comment.store') }}" >
@csrf
<input type="hidden" name="film_id" value="{{ $film->id }}">
<div class="form">
<input type="text" placeholder="Add comment..">
<button type="submit" class="submit">Add comment</button>
</div>
</form>
这样,film_id 将发送到您的控制器
当我点击提交按钮时 returns 带有 404 页面的路由
这是blade
<form method="POST" action="{{ route('comment.store') }}" >
@csrf
<input type="text">
<button type="submit">Add comment</button>
</form>
评论管理员:
class CommentController extends Controller
{
public function __construct() {
$this->middleware('auth');
}
public function store(Request $request)
{
$film = Film::findOrFail($request->film_id);
Comment::create([
'comment' => $request->comment,
'user_id' => Auth::id(),
'post_id' => $film->id
]);
return redirect()->route('showFilm', $film->id);
}
}
这是我的 web.php:
Route::post('comment/store', [CommentController::class, 'store'])->name('comment.store');
你的findOrFail()
方法return这个404错误,导致$request->film_id
为空
发生这种情况是因为您正在使用 findOrFail()
方法,顾名思义,如果找到模型,它将 return 您的模型,否则,您会显示 404 页面。您应该在存储方法
编辑:在您的视图film_id中添加隐藏输入
<form method="POST" action="{{ route('comment.store') }}" >
@csrf
<input type="hidden" name="film_id" value="{{ $film->id }}">
<div class="form">
<input type="text" placeholder="Add comment..">
<button type="submit" class="submit">Add comment</button>
</div>
</form>
这样,film_id 将发送到您的控制器