前提・実現したいこと
送信フォームをlaravelで実装しています。
送信したデータをDBにいれたいんですが、うまくいっておりません。
ddでpostの内容がとれているか確認してみた所、
入力した値はとれているみたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
送信フォームからDBにデータが反映されない
該当のソースコード
controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\ContactForm; class ContactFormController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // return view('contact.index'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // return view('contact.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $contact =new ContactForm; // $contact->name = $request->input('name'); // $contact->email = $request->input('email'); $contact->url = $request->input('url'); $contact->gender = $request->input('gender'); $contact->age = $request->input('age'); $contact->contact = $request->input('contact'); dd($contact); $contact->save(); return redirect('contact/index'); } ```views
@extends('layouts.app')
@section('content')
<div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">Dashboard</div></div> @endsection ``` web.php(route) ```ここに言語を入力 <?php<div class="card-body"> @if (session('status')) <div class="alert alert-success" role="alert"> {{ session('status') }} </div> @endif creeateです。 <form method="POST" action="{{route('contact.store')}}"> @csrf 氏名 <input type="text" name="name"> <br> メールアドレス <input type="email" name="email"> <br> ホームページ <input type="url" name="url"> <br> 性別 <input type="radio" name="gender" value="0">男性 <input type="radio" name="gender" value="1">女性 <br> 年齢 <select name="age"> <option value="">選択してください</option> <option value="1">~19歳</option> <option value="2">20~29歳</option> <option value="3">30~39歳</option> <option value="4">40~49歳</option> </select> <br> お問い合わせ内容 <textarea name="contact"></textarea> <br> <input type="checkbox" name="caution" value="1">注意事項 <br> <input class="btn btn-info" type="submit" value="登録する"> </form> </div> </div> </div> </div>
/* |
---|
Web Routes |
-------------------------------------------------------------------------- |
Here is where you can register web routes for your application. These |
routes are loaded by the RouteServiceProvider within a group which |
contains the "web" middleware group. Now create something great! |
*/ |
Route::get('/', function () {
return view('welcome');
});
Route::get('tests/test','TestController@index');
Route::group(['prefix' => 'contact','middleware' => 'auth'],function(){
Route::get('index','ContactFormController@index')->name('Contact.index');
Route::get('create','ContactFormController@create')->name('contact.create');
Route::post('store','ContactFormController@store')->name('contact.store');
});
// Route::resource('contact', 'ContactFormController');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
DB情報 ![![イメージ説明](37d0d219bb5c7f4e1623bbd60780f109.png) 読み込みのディレクトリ ![イメージ説明](4bbe26aa9a75cc68d7580640150907bd.png) 追加 contact form model ![イメージ説明](de2c5f858cb33e9f50db54a9030c7ef5.png) ![イメージ説明](db0ff7e95c384556ed3c5f99df6d9550.png) 追加実装2 ![イメージ説明](63f7626afc483eca5b1a7aeae6870815.png) 追加情報3 ![イメージ説明](6a56cbede2066c17fbeb13b5ce1802bc.png) 追加情報4 ![イメージ説明](2eb269c10c25087d4ca843d757e3881f.png) 追加情報5(別画面表示) ![イメージ説明](232af00a25062a640a3bbb863438521b.png) ### 試したこと 登録したデータが取得できているか確認。 バグがないか確認 記事をよんで、確認 https://katsusand.dev/posts/laravel-save-data-db/ ドキュメントで確認 https://readouble.com/laravel/8.x/ja/controllers.html (リソースコントローラの部分) 送信フォームの @csrfを追記 コントローラで use App\Models\ContactForm; $contact =new ContactForm; $contact->save(); スペルミスがないか確認 ### 補足情報(FW/ツールのバージョンなど) Laravel Framework 6.18.43 ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー