現在Laravelを勉強中です。
そこで、フォームでPOST送信したのをテーブルに追加する作業を行っているのですが、機能しません。
コードの間違いなどを確認しましたが、特に問題は無さそうで困っています。
コードは下記の通りです。
dd($request->all())について
dd($request->all())の内容がブラウザに表示されていません。
web.phpでルートのpostを除けると、POSTがサポートされていないと出ているので,web.phpでアクセスは検知しているものの、その後のコントローラーの処理が実行されない状況です。
お分かりの方いましたら、ご教授お願いします。
web.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*/ 13 14use App\Http\Middleware\HelloMiddleware; 15 16Route::get('board', 'BoardController@index'); 17 18Route::get('board/add', 'BoardController@add'); 19 20Route::post('board/add', 'BoardController@create');
add.blade.php
1@extends('layouts.helloapp') 2@section('title', 'Board.Add') 3@section('menubar') 4@parent 5投稿ページ 6@endsection 7 8@section('content') 9<table> 10<form action="/board/add" method="post"> 11 @csrf 12 <tr><th>person id: </th><td><input type="number" 13 name="person_id"></td></tr> 14 <tr><th>title: </th><td><input type="text" 15 name="title"></td></tr> 16 <tr><th>message: </th><td><input type="text" 17 name="message"></td></tr> 18 <tr><th></th><td><input type="submit" 19 value="send"></td></tr> 20</form> 21</table> 22@endsection 23 24@section('footer') 25copyright 2020 tuyano. 26@endsection
BoardController.php
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Board; 6use Illuminate\Http\Request; 7 8class BoardController extends Controller 9{ 10 public function index(Request $request) 11 { 12 $items = Board::all(); 13 return view('board.index', ['items' => $items]); 14 } 15 public function add(Request $request) 16 { 17 $items = Board::all(); 18 return view('board.add', ['items' => $items]); 19 } 20 public function create(Request $request) 21 { 22 $this->validate($request, Board::$rules); 23 $board = new Board; 24 dd($request->all()); 25 $form = $request->all(); 26 unset($form['__token']); 27 $board->fill($form)->save(); 28 return redirect('/board'); 29 } 30} 31
Board.php
1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Board extends Model 8{ 9 protected $guarded = array('id'); 10 11 public static $rules = array( 12 'person' => 'required', 13 'title' => 'required', 14 'message' => 'required' 15 ); 16 17 public function getData() 18 { 19 return $this->id . ':' . $this->title . '(' . $this->person->name . ')'; 20 } 21 public function person() 22 { 23 return $this->belongsTo('App\Person'); 24 } 25} 26
create_board_table
1<?php 2 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateBoardsTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('boards', function (Blueprint $table) { 17 $table->increments('id'); 18 $table->integer('person_id'); 19 $table->string('title'); 20 $table->string('message'); 21 $table->timestamps(); 22 }); 23 } 24 25 /** 26 * Reverse the migrations. 27 * 28 * @return void 29 */ 30 public function down() 31 { 32 Schema::dropIfExists('boards'); 33 } 34} 35
![]
上の写真の通り、値を送信するとそのままboard/addにもう一度アクセスした状態となります。
laravel6
回答1件
あなたの回答
tips
プレビュー