質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

Q&A

解決済

1回答

1910閲覧

[Laravel]404番のエラーが出る。

Blue89Azul

総合スコア1

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

0グッド

0クリップ

投稿2020/08/30 00:35

編集2020/08/30 01:17

前提・実現したいこと

フォームからデータを送信して、元の画面にリダイレクトしたいです。

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

フォームからデータを送ると、404番Not foundの画面が表示されてしまいます。

該当のソースコード

controller

1<?php 2 3namespace App\Http\Controllers; 4 5use App\Http\Controllers\Controller; 6use Illuminate\Http\Request; 7use App\Models\Calendar; 8use App\Models\AddPlan; 9use Carbon\Carbon; 10 11class CalendarController extends Controller 12{ 13 public function showCale(Request $request) 14 { 15 $obj = new Calendar; 16 $num = $obj->holidays(); 17 $cal = $obj->showCale($request->year, $request->month); 18 $cal_changeMonth = $obj->changeMonth($request->year, $request->month); 19 return view('admin.calendar', [ 20 "num" => $num, 21 "cal" => $cal, 22 "changeMonth"=>$cal_changeMonth, 23 ]); 24 } 25 26 public function addPlan(Request $request) 27 { 28 $this->validate($request, AddPlan::$rules); 29 $addPlan = new AddPlan; 30 $form = $request->all(); 31 unset($form['_token']); 32 $addPlan->fill($form); 33 $addPlan->save(); 34 35 return redirect('admin/calendar'); 36 } 37}

Route

1Route::get('/calendar', 'CalendarController@showCale'); 2Route::post('/calendar', 'CalendarController@addPlan'); 3 4Route::get('/', function () { 5 return view('welcome'); 6});

View

1 <div class="modal fade" id="modal__addPlan" tabindex="-1" role="dialog" aria-hidden="true"> 2 <div class="modal-dialog modal-dialog-centered" role="document"> 3 <div class="modal-content"> 4 <form class="plan-form" action="{ action('CalendarController@addPlan') }" method="post" enctype="multipart/form-data"> 5 <div id="add-plan"> 6 <div class="form-group col-12 px-0 plan-form__title"> 7 <input class="form-control text-center plan-form__title" type="text" name="planTitle" value="" placeholder="予定タイトル"> 8 </div> 9 <div class="form-group d-flex justify-content-around mb-0 start-date"> 10 <input class="form-control col-5" type="date" name="startDate" value="" placeholder="開始日付"> 11 <p>:</p> 12 <input class="form-control col-5 start-date__time" type="time" name="startTime" step="900" placeholder="開始時刻"> 13 </div> 14 <p class="text-center p-0 m-0">⇩</p> 15 <div class="form-group d-flex justify-content-around end-date"> 16 <input class="form-control col-5" type="date" name="endDate" value="" placeholder="終了日付"> 17 <p>:</p> 18 <input class="form-control col-5" type="time" name="endTime" step="900" placeholder="終了時刻"> 19 </div> 20 </div> 21 <div id="done-for-us"> 22 <div class="form-group"> 23 <div class="form-group col-12 px-0 plan-form__title"> 24 <input class="form-control text-center plan-form__title" type="text" name="title" value="" placeholder="コメントタイトル"> 25 </div> 26 <div class="form-group"> 27 <input class="form-control col-12" type="date" name="" value="" placeholder="日付"> 28 </div> 29 </div> 30 </div> 31 <div class="form-group"> 32 <div class="plan-form__change-btn text-center"> 33 <input class="change-btn" type="checkbox" id="changebtn"> 34 <label class="change-btn-label" for="changebtn">ADD PLAN</label> 35 </div> 36 </div> 37 <!-- 予定追加・色変更 --> 38 <div id="color" class="form-group"> 39 <div class="color-items color-items d-flex justify-content-around"> 40 <input id="color-01" type="radio" name="color" value="#dd5858"> 41 <label class="red" for="color-01"></label> 42 <input id="color-02" type="radio" name="color" value="#659BDF"> 43 <label class="blue" for="color-02"></label> 44 <input id="color-03" type="radio" name="color" value="#579779"> 45 <label class="green" for="color-03"></label> 46 </div> 47 </div> 48 <!-- 予定追加・いいね! --> 49 <div id="like" class="form-group"> 50 <div class="like-items color-items d-flex justify-content-around"> 51 <input id="like-01" type="checkbox" name="like" value=""> 52 <label for="like-01"> 53 <img src="img/like-btn.png" alt="いいね!"> 54 </label> 55 <input id="like-02" type="checkbox" name="like" value=""> 56 <label for="like-02"> 57 <img src="img/like-btn.png" alt="いいね!"> 58 </label> 59 <input id="like-03" type="checkbox" name="like" value=""> 60 <label for="like-03"> 61 <img src="img/like-btn.png" alt="いいね!"> 62 </label> 63 </div> 64 </div> 65 {{ csrf_field() }} 66 <div class="form-group"> 67 <input class="btn-color form-control col-11 mx-auto" type="submit" value="保存"> 68 </div> 69 </form> 70 </div> 71 </div> 72 </div> 73

補足情報

php artisan route:list で確認しましたが、ルーティングはできているようです。
イメージ説明

初歩的な質問ですが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/30 00:56 編集

画像は外部サイトではなくteratailの画像投稿機能を利用してご提示ください。 admin/calendar はどこでルーティング受け取ってるんでしょうか。
Blue89Azul

2020/08/30 01:23

ご指摘ありがとうございます。修正いたしました! すみません。正しくは、/calendarですね。
m.ts10806

2020/08/30 01:35

では、どこまで通ってるかデバッグしてみてください。
guest

回答1

0

ベストアンサー

精査してませんが、Controller記載の

return redirect('admin/calendar');

return redirect('/calendar');

にしたらいけませんかね??

投稿2020/08/30 01:10

Suumon

総合スコア211

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Blue89Azul

2020/08/30 01:21

ご回答ありがとうございます。 変更してみましたが、まだ404が出てしまいます。。。
Suumon

2020/08/30 01:41

念のため、変更した点は上に書いておいてくださいね。 んー、そうですね。。 では、View側の ``` action="{ action('CalendarController@addPlan') }" ``` を ``` action="{{ action('CalendarController@addPlan') }}" ``` でどうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問