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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

491閲覧

Laravel5.5でのフォーム作成について

YamamotoAtsushi

総合スコア17

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/04/17 16:00

Larave5.5でのお問い合わせサイト作成について

Laravel5.5でお問い合わせサイトにてフォームからDBへの引き渡しを勉強している者です。
下記サイトを参考にして作成しておりますが、Laravel5.2までの記述になり5.5で作成すると
エラーが出ており、現状で解決方法を探っております。
どなたか解決方法があれば教えて頂ければと思います。
よろしくお願い致します。

1.参考にしたサイト

 - Laravel学習帳(DB操作について(挿入)の章)
https://laraweb.net/tutorial/2633/

  • Laravel5.5 クエリービルダー

  https://readouble.com/laravel/5.5/ja/queries.html

2.検証環境

OS:Windows 10 Pro (64bit)
xampp:PhP7.1
使用DB:MySQLDB

3.発生してるエラー内容

debug:symfony\Component\HttpKernel\Exception\NotFoundHttpExceptioinsert
ページurlが\insert\finishになりページが表示されない
エラー画面

4. 作成したコード

htdocs\demo\resources\views\insert\index.blade.php(入力画面)

php

1@extends('layouts.master_insert') 2@section('title', 'Laravel チュートリアル(初級)') 3 4@section('content') 5<h3>従業員登録画面</h3> 6<p><span class="label label-danger">入力画面</span> -> 確認画面 -> 完了画面</p> 7 8<form action="insert/confirm" method="post" class="form-horizontal"> 9 <div class="form-group @if($errors->has('username')) has-error @endif"> 10 @if($errors->has('username'))<span class="text-danger">{{ $errors->first('username') }}</span> @endif 11 <label class="col-sm-2 control-label" for="username">名前:</label> 12 <div class="col-sm-10"> 13 <input type="text" class="form-control" id="username" name="username" placeholder="お名前を入力してください" value="{{ old('username') }}"> 14 </div> 15 </div> 16 <div class="form-group @if($errors->has('mail')) has-error @endif"> 17 <label class="col-sm-2 control-label" for="mail">Email:</label> 18 <div class="col-sm-10"> 19 <input type="text" class="form-control" id="mail" name="mail" placeholder="Emailを入力してください" value="{{ old('mail') }}"> 20 @if($errors->has('mail'))<span class="text-danger">{{ $errors->first('mail') }}</span> @endif 21 </div> 22 </div> 23 <div class="form-group @if($errors->has('age')) has-error @endif"> 24 <label class="col-sm-2 control-label" for="age">年齢:</label> 25 <div class="col-sm-2"> 26 <input type="text" class="form-control" id="age" name="age" placeholder="年齢" value="{{ old('age') }}"> 27 </div> 28 <div class="col-sm-8">歳 @if($errors->has('age'))<span class="text-danger">{{ $errors->first('age') }}</span> @endif</div> 29 </div> 30 <div class="row"> 31 <div class="col-sm-offset-2 col-sm-10"> 32 <input type="submit" name="button1" value="登録" class="btn btn-primary btn-wide" /> 33 </div> 34 <input type="hidden" name="_token" value="{{ csrf_token() }}"> 35</form> 36@endsection

htdocs\demo\resources\views\insert\confirm.blade.php(確認画面)

php

1@extends('layouts.master_insert') 2@section('title','Laravelチュートリアル(初級)') 3 4@section('content') 5<h3>従業員登録画面:確認画面</h3> 6 7<p>入力画面 -><span class="label label-danger"> 確認画面</span> -> 完了画面</p> 8<form action="insert/finish" method="post" class="form-horizontal"> 9 <input type="hidden" name="_token" value="{{ csrf_token() }}"> 10 <input type="hidden" name="username" value="{{ $username }}"> 11 <input type="hidden" name="mail" value="{{ $mail }}"> 12 <input type="hidden" name="age" value="{{ $age }}"> 13 <div class="row"> 14 <div class="row"> 15 <label class="col-sm-2 control-label" for="username">名前:</label> 16 <div class="col-sm-10">{{ $username }}</div> 17 </div> 18 <div class="row"> 19 <label class="col-sm-2 control-label" for="mail">Email:</label> 20 <div class="col-sm-10">{{ $mail }}</div> 21 </div> 22 <div class="row"> 23 <label class="col-sm-2 control-label" for="age">年齢:</label> 24 <div class="col-sm-2">{{$age}}</div> 25 <div class="col-sm-8"></div> 26 </div> 27 <div class="row"> 28 <div class="col-sm-offset-2 col-sm-10"> 29 <input type="submit" name="button1" value="登録" class="btn btn-primary btn-wide"/> 30 </div> 31 </div> 32 </div> 33</form> 34@endsection

htdocs\demo\resources\views\insert\finish.blade.php(完了画面)

php

1@extends('layouts.master_insert') 2@section('title','Laravelチュートリアル(初級)') 3 4@section('content') 5 <h3>従業員登録画面:確認画面</h3> 6 7 <p>入力画面-> 確認画面 -><span class="label label-danger">完了画面</span></p> 8 9 <div class="alert alert-success" role="alert">データベースにデータを挿入しました!</div> 10@endsection

htdocs\demo\app\Worker.php

php

1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Worker extends Model 8{ 9 protected $fillable =['username','mail', 'age' ]; 10}

htdocs\demo\app\Http\Controllers\InsertDemoController.php

php

1<?php 2namespace App\Http\Controllers; 3 4use Illuminate\Http\Request; 5use App\Worker; 6use Validator; 7 8 9class InsertDemoController extends Controller 10{ 11 //表示画面の作成 12 public function getIndex(Request $request) 13 { 14 return view('insert.index'); 15 } 16 //バリデーション機能の作成 17 public function confirm(Request $request) 18 { 19 $rules=[ 20 'username' => 'required', 21 'mail' => 'required|email', 22 'age' => 'numeric|between:0,150', 23 ]; 24 25 $messages=[ 26 'username.required' => '名前は必ず入力してください。', 27 'mail.required'=> 'メールアドレスは必ず入力してください。', 28 'mail.email' =>'メールアドレス形式で入力してください。', 29 'age.numeric'=> '年齢は整数で記入してください', 30 'age.between'=> '年齢は0~150の間で記入してください。', 31 ]; 32 33 // バリデーションをインスタンス化(バリデーションクラスからバリデーションを実装する) 34 $this->validate($request, $rules, $messages); 35 36 // $requestから全ての変数を引き出し$dataに格納 37 $data = $request -> all(); 38 39 // confirmページへ$data変数を返す。 40 return view('insert.confirm')->with($data); 41 } 42 43 public function finish(Request $request) 44 { 45 $user = new Worker; 46 $user->username = $request->username; 47 $user->mail = $request->mail; 48 $user->age = $request->age; 49 $user->save(); 50 51 return view('insert.finish'); 52 } 53}

htdocs\demo\routes\web.php

php

1<?php 2 3/* 4|-------------------------------------------------------------------------- 5| Web Routes 6|-------------------------------------------------------------------------- 7| 8| Here is where you can register web routes for your application. These 9| routes are loaded by the RouteServiceProvider within a group which 10| contains the "web" middleware group. Now create something great! 11| 12*/ 13Route::get('/', function () { 14 return view('welcome'); 15}); 16Route::get('insert/', 'InsertDemoController@getIndex'); 17Route::post('insert/confirm', 'InsertDemoController@confirm'); 18Route::get('insert/finish', 'InsertDemoController@finish'); 19

5.試したこと

finish部分の上にcreateを作成し、web.phpにRoute::get('insert.finish','InsertDemoController@create')を追加などを実行しましたが
改善されませんでした。

申し訳ございませんが、よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

相対パスなだけでは。

<form action="/insert/confirm"
<form action="{{ url("insert/finish") }}"

投稿2019/04/18 01:43

kawax

総合スコア10377

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

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

YamamotoAtsushi

2019/04/18 13:53 編集

早速のご回答ありがとうございます。index,confirmをURLルートにし、web.php部分の最後postにした 結果無事データベースへの挿入及びthanks画面へ到達することができました。 今後はこの書き方を踏襲していきたいと思います。ありがとうございました。 ベストアンサーにさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問