laravel 開発日記 第10回 ~ 基本CRUDアプリを作ってみる(後編) ~

今回も前回にひきつづき、基本CRUDアプリを作ろうと思います。

(7)ビューファイルの作成
ビューファイルの作成の前に、 下記、参考ページをもとに、ヘルパー関数を修正しています。

■初めてのLARAVEL 5 : (22) HELPER 関数の追加
https://laravel10.wordpress.com/2015/03/16/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AElaravel-5-22-helper/

では、ビューファイルについて。
使うビューファイルは、以下の3つです。
・index.blade.php
・show.blade.php
・createAndEdit.blade.php

(参考)
■api マニュアル(HTMLビルダー、Formビルダー)
http://laravel.com/api/5.0/Illuminate/Html.html

では、それぞれ確認していきます。

【作業ファイル:/resources/views/corporationDivisions/index.blade.php】

@extends('layout')

@section('bodyTag')
<body id="corporationDivisions">
@stop

@section('content')

<ol class="breadcrumb">
  <li class="active">取引先グループ名一覧</li>
</ol>

<h1>取引先グループ名一覧</h1>

<p>{!! link_to('corporationDivisions/create', '新規登録', ['class' => 'btn btn-primary']) !!}</p>

<table class="table table-striped">
    <thead>

      <tr>
        <th>#</th>
        <th>取引先グループ名</th>
        <th>編集</th>
        <th>削除</th>
      </tr>
    </thead>
    <tbody>

@foreach($corporationDivisions as $corporationDivision)
      <tr>
        <td>{!! Html::link("/corporationDivisions/$corporationDivision->id", $corporationDivision->id) !!}</td>
        <td>{{ $corporationDivision->name }}</td>
        <td>{!! link_to(action('CorporationDivisionsController@edit', [$corporationDivision->id]), '編集', ['class' => 'btn btn-xs btn-primary']) !!}</td>
            <td>{!! delete_form(['corporationDivisions', $corporationDivision->id]) !!}</td>
      </tr>
@endforeach

    </tbody>
</table>

@stop

各レコードごとに、編集、削除ボタンを付与。 また、IDには詳細ページへのリンクをつけています。

【作業ファイル:/resources/views/corporationDivisions/show.blade.php】

@extends('layout')

@section('bodyTag')
<body id="corporationDivisions">
@stop

@section('content')

<ol class="breadcrumb">
  <li><a href="/corporationDivisions/">取引先グループ名一覧</a></li>
  <li class="active">{{ $corporationDivision->name }}</li>
</ol>

<h1> {{ $corporationDivision->name }}</h1>

<h2>取引先グループ名</h2>
<p>{{ $corporationDivision->name }}</p>

@stop

こちらはさらにシンプルな、詳細ページ。

【作業ファイル:/resources/views/corporationDivisions/createAndEdit.blade.php】

@extends('layout')

@section('bodyTag')
<body id="corporationDivisions">
@stop

@section('content')

@if(isset($corporationDivision))
    <ol class="breadcrumb">
      <li><a href="/corporationDivisions/">取引先グループ名一覧</a></li>
      <li><a href="/corporationDivisions/{{ $corporationDivision->id }}">{{ $corporationDivision->name }}</a></li>
      <li class="active">編集</li>
    </ol>
@else
    <ol class="breadcrumb">
      <li><a href="/corporationDivisions/">取引先グループ名一覧</a></li>
      <li class="active">新規登録</li>
    </ol>
@endif

@if(isset($corporationDivision))
    <h1>編集</h1>
@else
    <h1>新規登録</h1>
@endif

@include('errors.form_errors')

@if(isset($corporationDivision))
    {!! Form::model($corporationDivision,['method' => 'PATCH', 'url' => ['corporationDivisions', $corporationDivision->id] ]) !!}
@else
    {!! Form::open(['url' => 'corporationDivisions']) !!}
@endif

<div class="form-group">
    {!! Form::label('name', '取引先グループ名:') !!}
    {!! Form::text('name', null, ['class' => 'form-control']) !!}
</div>

@if(isset($corporationDivision))
    <div class="form-group">
        {!! Form::submit('編集', ['class' => 'btn btn-primary form-control']) !!}
    </div>
@else
    <div class="form-group">
        {!! Form::submit('新規登録', ['class' => 'btn btn-primary form-control']) !!}
    </div>
@endif

{!! Form::close() !!}

@stop

最後に、新規作成&編集ページになります。 コントローラーから$corporationDivisionを受け渡されているかどうかで、編集ページ / 新規登録ページを切り分けています。

@if(isset($corporationDivision))
{{--  ここは編集のとき表示 --}}
@else
{{--  ここは新規登録のとき表示 --}}
@endif

以上、若干ざっくりした説明でしたが、ビューになります。

かなりシンプルなCRUDアプリでしたが、 結局7工程もかかってしまいました。

(1)モデルの作成
(2)マイグレーションファイル修正
(3)ルーティング修正
(4)リクエストの作成
(5)ルートサービスプロバイダ修正
(6)コントローラー作成
(7)ビューファイルの作成

毎回、この作業をするのもしんどいので、 次回、この作業をまとめて行うカスタムコマンドを作ろうと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です