【PHP/Laravel】showアクションで詳細表示

Laravelのshowアクションで詳細表示を作成する方法についてまとめました。

showアクションで詳細表示の作成

①TasksController.phpに「showアクション」を追加します。
場所: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');
    }

    public function index()
    {
        $tasks = Task::orderBy('updated_at', 'desc')->get();
        return view('tasks/index')->with('tasks', $tasks);
    }

    // showアクションの追加
    public function show($id)
    {
        $task = Task::find($id);
        return view('tasks/show')->with('task', $task);
    }
}

② 「show.blade.php」で詳細表示のViewを作成します。
場所:resources/views/tasks/show.blade.php

@extends('layouts.app')

@section('title', $task->name)

@section('content')

    <div class="panel panel-default">
        <div class="panel-heading">
            {{ $task->name }}
        </div>
        <div class="panel-body">
            <div>
                タスク名: {{ $task->name }}
            </div>
            <div>
                完了: {{ $task->done ? '完了' : '未' }}
            </div>
        </div>
        <div class="panel-footer">
            {{ link_to_route('tasks.index', '戻る') }}
        </div>
    </div>

@endsection

実行結果

ブラウザで「http://localhost/example/public/tasks/」にアクセスすると、作成したトップページを確認できます。

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