tomoki312
@tomoki312

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

laravelでうまくルーティングされない

Q&A

Closed

前提・実現したいこと

本の検索して問題を作成するwebアプリ作成中にルーティングがうまくいかないエラーが発生しました。

発生している問題・エラーメッセージ

作成ボタンを押すと何故かQuestionControllerのcreateが実行されます。
スクリーンショット 2022-03-06 10.42.32.png

該当のソースコード

web.php
Route::get('questions/{book}', [QuestionController::class, 'create'])->name('questions.create');
Route::post('questions/{book}', [QuestionController::class, 'store'])->name('questions.store');
QuestionController
<?php

namespace App\Http\Controllers;

use App\Http\Requests\QuestionRequest;
use App\Models\Question;

class QuestionController extends Controller
{
    public function create($book) {
        return view('question.create',['book' => $book]);
    }

    public function store(QuestionRequest $request, Question $question, $book) {
        $question->question = $request->question;
        $question->answer = $request->answer;
        $question->user_id = $request->user()->id;
        $question->save();
        return view('home');
    }
}
create.blade.php
@extends("layouts/app")
@section('title', '作成')
@section('content')
@include('layouts/nav')
<div class="container" style="max-width: 1000px;">
    <div class="row">
        <h3 class="mt-2">問題を新規作成</h3>
        <div class="mt-5">
            <input type="text" placeholder="タイトルを入力してください" class="form-control border-bottom bg-light p-0" id="title" style="border:none; border-color: inherit; box-shadow: none;">
        </div>
        <form action="{{ route('questions.store', ['book' => $book]) }}" method="post">
                ##省略
            <div class="text-end mt-3">
                <button class="btn btn-primary col-3 pt-3 pe-2 ps-2  pb-3 fs-5" type="submit">作成する</button>
            </div>
        </form>
    </div>
</div>
@endsection

試したこと

ルーティングの確認

補足情報(FW/ツールのバージョンなど)

laravel9
php8.1

0

1Answer

inputにnameをつけていないからでした。あと、エラー文を表示するようにしていなかったので何の表示もなく、リダイレクトされているように見えたので時間をかけてしまいました

0Like

Your answer might help someone💌