【PHP/Laravel】create・storeアクションで新規登録画面の作成

Laravelのcreate・storeアクションで新規登録画面を作成する方法についてまとめました。

create・storeアクションの作成

TasksController.phpを編集し、「createアクション」「storeアクション」を作成します。

TasksController.php

場所:app/Http/Controllers/TasksController.php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Task;
use App\Http\Requests;

class TasksController extends Controller
{
    public function create()
    {
        return view('tasks/create')->with('task', new Task());
    }

    public function store(Request $request)
    {
        $task = new Task();
        // リクエストパラメータから値を取得
        $task->fill($request->all());
        $task->save();
        return redirect()->route('tasks.index');
    }
}

storeではDBに保存して一覧にリダイレクトします。
Modelの$fillableにフィールド名を定義しているので、「$task->fill」でリクエストパラメータから値を取得できます。

新規作成画面のView作成
続いて、新規作成画面のViewを作成します。

create.blade.php

場所:resources/views/tasks/create.blade.php

@extends('layouts.app')

@section('title', '新規作成')

@section('content')

    <div class="panel panel-default">
        <div class="panel-heading">
            新規作成
        </div>
        <div class="panel-body">
            {!! Form::model($task, ['route' => 'tasks.store', 'method' => 'post', 'class' => 'form-horizontal']) !!}
                <div class="form-group">
                    {!! Form::label('name', 'タスク名', ['class' => 'col-sm-3 control-label']) !!}
                    <div class="col-sm-6">
                        {!! Form::text('name', $task->name, ['id' => 'task-name', 'class' => 'form-control']) !!}
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-3 col-sm-6">
                        {!! Form::submit('タスク追加', ['class' => 'btn btn-default']) !!}
                    </div>
                </div>
            {!! Form::close() !!}
        </div>
        <div class="panel-footer">
            {{ link_to_route('tasks.index', '戻る') }}
        </div>
    </div>
@endsection

実行結果

ブラウザで「http://localhost/example/public/tasks/create」にアクセスすると、作成した新規登録画面を確認できます。

関連ページ
1 【PHP入門】基礎文法とサンプルコード集
2 【PHP】Laravelフレームワーク入門
関連記事