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

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

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

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

513閲覧

"ルートが定義されていません"エラーが出ます。新規投稿画面を表示させたい。

Hello.world

総合スコア10

Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/03/03 04:00

編集2023/03/03 04:39

laravel 6.20.44
windows

実現したいこと

products/createのURLを踏むと新規投稿画面が表示されるようにしたい

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

Route [store] not defined. (View: C:\MAMP\htdocs\blog\resources\views\products\register.blade.php)

一覧画面はきちんと表示されるのですが、新規投稿画面が表示されません。
Youtubeの動画を見ながら勉強しているのですが、動画の通りにしてもエラーが出てしまいます。
自力で調べてルート一覧を参照したり、ルートのキャッシュクリアを試しても改善しませんでした。
laravelのバージョンが関係しているのでしょうか?
動画だとlaravelのバージョンが8、自分のが6なので。
一応、動画のURLも貼っておきます。
https://www.youtube.com/watch?v=1s-_XKtOZ-I&list=PLbURJcNWS9NDCZHUPMTMbX-O6S_47AOIF&index=7
7:15辺りです。

ルート一覧です
イメージ説明

web.php

1 <?php 2 3use App\Http\Controllers\ProductsController; 4/* 5|-------------------------------------------------------------------------- 6| Web Routes 7|-------------------------------------------------------------------------- 8| 9| Here is where you can register web routes for your application. These 10| routes are loaded by the RouteServiceProvider within a group which 11| contains the "web" middleware group. Now create something great! 12| 13*/ 14 15Route::get('/', function () { 16 return view('welcome'); 17}); 18 19Auth::routes(); 20 21Route::get('/home', 'HomeController@index')->name('home'); 22 23Route::resource('/products', 'ProductsController'); 24

ProductsController.php

1<?php 2 3namespace App\Http\Controllers; 4 5use App\Models\Products; 6use Illuminate\Http\Request; 7 8class ProductsController extends Controller 9{ 10 /** 11 * Display a listing of the resource. 12 * 13 * @return \Illuminate\Http\Response 14 */ 15 public function index() 16 { 17 return view('products.list'); 18 } 19 20 /** 21 * Show the form for creating a new resource. 22 * 23 * @return \Illuminate\Http\Response 24 */ 25 public function create() 26 { 27 return view('products.register'); 28 } 29 30 /** 31 * Store a newly created resource in storage. 32 * 33 * @param \Illuminate\Http\Request $request 34 * @return \Illuminate\Http\Response 35 */ 36 public function store(Request $request) 37 { 38 39 } 40 41 /** 42 * Display the specified resource. 43 * 44 * @param \App\Models\Products $products 45 * @return \Illuminate\Http\Response 46 */ 47 public function show(Products $products) 48 { 49 50 51 } 52 53 /** 54 * Show the form for editing the specified resource. 55 * 56 * @param \App\Models\Products $products 57 * @return \Illuminate\Http\Response 58 */ 59 public function edit(Products $products) 60 { 61 // 62 } 63 64 /** 65 * Update the specified resource in storage. 66 * 67 * @param \Illuminate\Http\Request $request 68 * @param \App\Models\Products $products 69 * @return \Illuminate\Http\Response 70 */ 71 public function update(Request $request, Products $products) 72 { 73 // 74 } 75 76 /** 77 * Remove the specified resource from storage. 78 * 79 * @param \App\Models\Products $products 80 * @return \Illuminate\Http\Response 81 */ 82 public function destroy(Products $products) 83 { 84 // 85 } 86} 87

register

1<!DOCTYPE HTML> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>ブログ</title> 6 <link rel="stylesheet" href="/css/app.css"> 7 <script src="/js/app.js" defer></script> 8</head> 9<body> 10 <br> 11 <div class="container"> 12 <div class="row"> 13 <div class="col-md-8 col-md-offset-2"> 14 <h2>商品登録</h2> 15 16 <form class="edit-form" method="POST" action="{{ route('store') }}" 17 onSubmit="return checkSubmit()"> 18 @csrf 19 20 <div class="form-group"> 21 <p>商品名</p> 22 <input type="text" name="product_name" required> 23 </div> 24 <div class="form-group"> 25 <p>メーカー</p> 26 <select name="maker"> 27 <option value="サンプル1">サンプル1</option> 28 <option value="サンプル2">サンプル2</option> 29 <option value="サンプル3">サンプル3</option> 30 </select> 31 </div> 32 <div class="form-group"> 33 <p>価格</p> 34 <input type="text" name="text" maxlength="8"> 35 </div> 36 <div class="form-group"> 37 <p>在庫数</p> 38 <input type="text" name="text" maxlength="8"> 39 </div> 40 <div class="form-group"> 41 <p>コメント</p> 42 <textarea name="kansou" rows="4" cols="40"> 43 </textarea> 44 </div> 45 <div class="form-group"> 46 <p>商品画像</p> 47 <input type="file" name="img" class="imgform"> 48 </div> 49 <button type="submit">登録</button> 50 <button onclick="location.href='/products'">戻る</button> 51 </form> 52 53 </tr> 54 </div> 55</div> 56 </div> 57 58</body> 59</html>

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

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

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

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

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

m.ts10806

2023/03/03 04:27

WindowsなのにMAMPであることと、register.blade.phpが提示されてないので「エラーの通り」くらいしか応えようがないのですが、storeという名前のルートはどこで定義されているつもりでしょうか。
Hello.world

2023/03/03 04:41

registerを見返したらform内で存在しないstoreを記述をしておりました。 修正したら無事表示することが出来ました。ありがとうございます。
m.ts10806

2023/03/03 05:14

物凄く悪いのですが、このくらいのエラーを読み解けないようだとLaravelは全く太刀打ちできないと思います。「Web職人のためのフレームワーク」と公式に掲げられていますから。 動画とか個人記事だけでなんとかしようと思ってたら時間だけ浪費して全く使えるようになりません。
Hello.world

2023/03/03 05:18

大変貴重なアドバイスありがとうございます!!! 会社の研修で自力で作らないといけないので、どうしても独学になってしまいます。
m.ts10806

2023/03/03 05:41

会社なら本来聞くべき人がいるだろうというのと、 基礎身についてないままやっつけて課題をこなしたとして、仕事でつかえるようにはならないので、 「自力」としても、入門や基礎からきっちりやるべきでしょうね。 せめて公式ドキュメントくらいは使えるように。 ただ、Laravelのバージョンそれで本当に問題ないの?という疑問は拭えませんが。
Hello.world

2023/03/03 06:00

聞ける人いるなら、わざわざアカウント開設してこのサイト使ったりしません。 laravelのバージョンは6で会社から指定されてます。 確かに知識不足が大いにあると思います。しかし、丸投げの質問にならないよう自分なりに事前に調べた上で質問しているつもりです。 このような初歩的な質問であなたの気分を害してしまって大変申し訳ございませんでした。以後気を付けます。
m.ts10806

2023/03/03 06:05

前提や背景不明なので何とも言えませんし、アカウントを作った経緯は全く無関係なので言及しませんが、丸投げなかどうかを指摘しているのではなく、基礎も何も身についてない状態で使えるような代物ではないので、研修をこなすためだけに質問するのは悪手であると認識してください。 仕事は学校のテストや宿題とは違うので、きちんと使える(もしくはおおよその自己解決能力がある)前提で進みます。 会社の方針は知らないですが、せめてバージョンの違いを疑えるくらいにはなりましょう。マイナーバージョン1つ違うとガラッと仕様が変わることもある世界です。 メジャーバージョンが違うと全く別物なのは言うまでもありません。 なので、先に申し上げたようにせめて公式ドキュメントを使ってください。 自力で→バージョンは違うが動画で確認だ は何かズレてると思います。
Hello.world

2023/03/03 06:08

大変貴重なアドバイスありがとうございます!
guest

回答1

0

自己解決

viewファイルを見返したら存在しないstoreを定義していました。
修正したら無事表示することができました。

<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>ブログ</title> <link rel="stylesheet" href="/css/app.css"> <script src="/js/app.js" defer></script> </head> <body> <br> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <h2>商品登録</h2> <form class="edit-form" method="POST" action="{{ route('store') }}" onSubmit="return checkSubmit()"> @csrf <div class="form-group"> <p>商品名</p> <input type="text" name="product_name" required> </div> <div class="form-group"> <p>メーカー</p> <select name="maker"> <option value="サンプル1">サンプル1</option> <option value="サンプル2">サンプル2</option> <option value="サンプル3">サンプル3</option> </select> </div> <div class="form-group"> <p>価格</p> <input type="text" name="text" maxlength="8"> </div> <div class="form-group"> <p>在庫数</p> <input type="text" name="text" maxlength="8"> </div> <div class="form-group"> <p>コメント</p> <textarea name="kansou" rows="4" cols="40"> </textarea> </div> <div class="form-group"> <p>商品画像</p> <input type="file" name="img" class="imgform"> </div> <button type="submit">登録</button> <button onclick="location.href='/products'">戻る</button> </form> </tr> </div> </div> </div> </body> </html>
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>ブログ</title> <link rel="stylesheet" href="/css/app.css"> <script src="/js/app.js" defer></script> </head> <body> <br> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <h2>商品登録</h2> <div class="form-group"> <p>商品名</p> <input type="text" name="product_name" required> </div> <div class="form-group"> <p>メーカー</p> <select name="maker"> <option value="サンプル1">サンプル1</option> <option value="サンプル2">サンプル2</option> <option value="サンプル3">サンプル3</option> </select> </div> <div class="form-group"> <p>価格</p> <input type="text" name="text" maxlength="8"> </div> <div class="form-group"> <p>在庫数</p> <input type="text" name="text" maxlength="8"> </div> <div class="form-group"> <p>コメント</p> <textarea name="kansou" rows="4" cols="40"> </textarea> </div> <div class="form-group"> <p>商品画像</p> <input type="file" name="img" class="imgform"> </div> <button type="submit">登録</button> <button onclick="location.href='/products'">戻る</button> </tr> </div> </div> </div> </body> </html>

投稿2023/03/03 04:45

Hello.world

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問