#環境
mac osx catalina
Docker version 19.03
laravel 6
mysql 8.0
#実現したいこと
タスク追加フォームで入力した値を表示させたい
#問題点
データベースにコメントが入らずにIDのみ登録される。
#やったこと
データベースクライアントで確認した。←コメントのみ空の状態
データベースクライアントでコメントを追加した←追加成功
以上のことからデータベースへの受け渡し方法に問題があると仮定した←今ここ
色々調べましたがエラーも出ていないことから私自身の理解度に問題があるのかもしれません。
もし良ければ下記コードをご確認頂きご教示頂けると嬉しいです。
Todo.controller.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class TodoController extends Controller { public function index(Request $request) { $items = DB::select('select * from Todos'); return view('Todos.index', ['items' => $items]); } public function post(Request $request) { $items = DB::select('select * from Todos'); return view('Todos.index', ['items' => $items]); } public function create(Request $request) { $param = [ 'id' => $request->id, 'comment' => $request->comment, ]; DB::insert('insert into Todos (id, comment) values (id, comment)', $param); return redirect('/Todo'); } }
view/layouts/index.blade.php
<html> <head> <title>@yield('title')</title> <style> body { font-size: 16pt; color: #999; margin: 5px; } h1 { font-size: 50pt; text-align: right; color: #f6f6f6; margin: -20px 0px -30px 0px; letter-spacing: -4pt; } ul { font-size: 12pt; } hr { margin: 25px 100px; border-top: 1px dashed #ddd; } .menutitle { font-size: 25pt; font-weight: bold; margin: 0px; } .content { margin: 10px; } .footer { font-size: 20pt; margin: 10px; } th { background-color: #999; color: fff; padding: 5px 10px; } td { border: solid 1px #aaa; color: #999; padding: 5px 10px; } task { font-size: 50pt; width: 70px; height: 70px; } </style> </head> <body> <h1>@yield('title')</h1> @section('menubar') <h2 class="menutitle"> Todoリスト</h2> タスクを追加 <br> <form action="/Todo" method="post"> {{ csrf_field() }} <input type="text" name="task" size="70"> <input type="submit" value="追加"> </form> <hr size="1"> <div class="content"> @yield('content') </div> <div class="footer"> @yield('footer') </div> </body> </html>
view/Todos/index.blade.php
@extends('layouts.index') @section('title','Todoリスト') @section('menubar') @parent Todoリスト @endsection @section('content') <table> <tr> <th>ID</th> <th>コメント</th> <th>状態</th> </tr> @foreach ($items as $item) <tr> <td>{{$item->id}}</td> <td>{{$item->comment}}</td> <td>作業中</td> <td><button type="button" name="delete" value="value">削除</button></td> </tr> @endforeach </table> @endsection
web.php
<?php /* |-------------------------------------------------------------------------- | 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('/hello', 'LineBotController@index'); Route::get('/Todo', 'TodoController@index'); Route::post('/Todo', 'TodoController@create');
回答2件
あなたの回答
tips
プレビュー