前提・実現したいこと
現在、laravelにてCRUDアプリ作成しています。
下記エラー出ているのですが、データベースに保存したいです。
発生している問題・エラーメッセージ
定義されていないと出てしまいます。
php
1ErrorException 2Undefined variable: your_name 3http://127.0.0.1:8000/contact
該当のソースコード
ContactFormcontroller.php
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7// 呼び出し 8use App\Models\ContactForm; 9 10class ContactFormController extends Controller 11{ 12 /** 13 * Display a listing of the resource. 14 * 15 * @return \Illuminate\Http\Response 16 */ 17 public function index() 18 { 19 $contacts = ContactForm::all(); 20 // dd($contacts); 21 return view('contact.index',compact('contacts')); 22 } 23 24 /** 25 * Show the form for creating a new resource. 26 * 27 * @return \Illuminate\Http\Response 28 */ 29 public function create() 30 { 31 // 32 return view('contact.create'); 33 } 34 35 /** 36 * Store a newly created resource in storage. 37 * 38 * @param \Illuminate\Http\Request $request 39 * @return \Illuminate\Http\Response 40 */ 41 public function store(Request $request) 42 { 43 $contact = new ContactForm; 44 45 46 $contact->$your_name = $request->input('your_name'); 47 $contact->$title = $request->input('title'); 48 $contact->$email = $request->input('email'); 49 $contact->$url = $request->input('url'); 50 $contact->$gender = $request->input('gender'); 51 $contact->$age = $request->input('age'); 52 $contact->$contact = $request->input('contact'); 53 54 $contact->save(); 55 56 return redirect('contact/index'); 57 } 58 59 /** 60 * Display the specified resource. 61 * 62 * @param int $id 63 * @return \Illuminate\Http\Response 64 */ 65 public function show($id) 66 { 67 $contact = ContactForm::find($id); 68 69 return view('contact.show', compact('contact')); 70 } 71 72 /** 73 * Show the form for editing the specified resource. 74 * 75 * @param int $id 76 * @return \Illuminate\Http\Response 77 */ 78 public function edit($id) 79 { 80 $contact = Contact::find($id); 81 return view('contact.edit', compact('contact')); 82 83 } 84 85 /** 86 * Update the specified resource in storage. 87 * 88 * @param \Illuminate\Http\Request $request 89 * @param int $id 90 * @return \Illuminate\Http\Response 91 */ 92 public function update(Request $request, $id) 93 { 94 // 95 } 96 97 /** 98 * Remove the specified resource from storage. 99 * 100 * @param int $id 101 * @return \Illuminate\Http\Response 102 */ 103 public function destroy($id) 104 { 105 // 106 } 107} 108
ContactForm.php
php
1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Model; 6 7class ContactForm extends Model 8{ 9 protected $fillable = [ 10 'your_name', 11 'title', 12 'email', 13 'url', 14 'gender', 15 'age', 16 'contact' 17 ]; 18 protected $table = 'contactforms'; 19} 20
create.blade.php
php
1<h1>create</h1> 2<a href="{{ route('contact.index') }}">一覧画面</a> 3 4<form method="POST" action="{{ route('contact.store') }}"> 5@csrf 6氏名 7<input type="text" name="your_name"> 8<br> 9件名 10<input type="text" name="title"> 11<br> 12メアド 13<input type="email" name="email"> 14<br> 15ホームページ 16<input type="url" name="url"> 17<br> 18性別 19<input type="radio" name="gender" value="0">男性</input> 20<input type="radio" name="gender" value="1">女性</input> 21<br> 22年齢 23<select name="age"> 24<option value="">選択してください</option> 25<option value="1">~19</option> 26<option value="2">20~29</option> 27<option value="3">30~39</option> 28<option value="4">40~49</option> 29<option value="5">50~59</option> 30<option value="6">60~</option> 31</select> 32<br> 33お問い合わせ内容 34<textarea name="contact"></textarea> 35<br> 36 37<input type="checkbox" name="caution" value="1">注意事項<br> 38 39<input class="btn btn-info" type="submit" value="登録する"> 40</form>
試したこと
phpmyadmin確認し、table,columnはあることを確認しました。
補足情報(FW/ツールのバージョンなど)
ご教授して頂けると光栄です。
Laravel 6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/11 00:33