WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Eloquent ORMでデータの作成1

Eloquent ORMでデータの作成1

このエントリーをはてなブックマークに追加

Eloquent ORMでデータの新規作成を行うための前準備をします。

新規入力ページの作成

新規入力用のページを下記のように作成します。

app/veiws/collection/create.blade.php
@extends('layouts.hpb')
@section('content')
 <div id="hpb-wrapper">
 <!-- page title -->
 <div id="hpb-title" class="hpb-top-image">
 <h2><span class="ja">新規作成</span><span class="en">CREATE</span></h2>
 </div>
 <!-- page title end --><!-- main -->
 <div id="hpb-main">
 <div class="hpb-parts-cnt-01 hpb-parts-cnt-style clearfix">
 <h3>新規作成</h3>
 <div class="hpb-parts-cbox-01 hpb-parts-cbox-style clearfix">
{{ Form::open() }}
 <table border="1" width="95%" cellspacing="0" cellpadding="2" id="HPB_TABLE_1_B_130514141846" class="hpb-cnt-tb2">
 <tbody>
 <tr>
 <td class="hpb-cnt-tb-cell3" width="75">&nbsp;コード*</td>
 <td class="hpb-cnt-tb-cell4" width="435">&nbsp;<input size="20" type="text" name="code">
@if($errors->has('code'))
<h2 style="color:red">{{ $errors->first('code') }}</h2>
@endif
 </td>
 </tr>
 <tr>
 <td class="hpb-cnt-tb-cell3" width="75">カテゴリ*</td>
 <td class="hpb-cnt-tb-cell4" width="435">&nbsp;<select size="3" name="category">
 <option value="洋画" selected>洋画</option>
 <option value="邦画">邦画</option>
 <option value="TVドラマ">TVドラマ</option>
 </select></td>
 </tr>
 <tr>
 <td class="hpb-cnt-tb-cell3" width="75">&nbsp;タイトル*</td>
 <td class="hpb-cnt-tb-cell4" width="435">&nbsp;<input size="40" type="text" name="title">
@if($errors->has('title'))
<h2 style="color:red">{{ $errors->first('title') }}</h2>
@endif
 </td>
 </tr>
 <tr>
 <td class="hpb-cnt-tb-cell3" width="75">コンテンツ&nbsp;</td>
 <td class="hpb-cnt-tb-cell4" width="435">&nbsp;<textarea rows="5" cols="40" name="content"></textarea>
@if($errors->has('content'))
<h2 style="color:red">{{ $errors->first('content') }}</h2>
@endif
 </td>
 </tr>
 <tr>
 <td class="hpb-cnt-tb-cell3">&nbsp;</td>
 <td class="hpb-cnt-tb-cell4">&nbsp;
{{ Form::submit('新規作成') }}
 </tr>
 </tbody>
 </table>
{{ Form::token() }}
{{ Form::close() }}
 <br>
 </div>
 <div id="pagetop"><a href="#hpb-container">このページの先頭へ</a></div>
 </div>
 </div>
 <!-- main end -->
 </div>
 <!-- wrapper end -->
@stop
  • 1行目:extendsで、ベース(レイアウト)テンプレートを読み込んでいます。
  • 2-65行目:ベーステンプレートの@yield(‘content’)の箇所に、section(‘content’)から、@stopの間のデータを埋め込みます。
  • 19-21行目:バリデーション処理のエラーを表示します。バリデーションNGなら、赤い文字で、エラーを表示します。35-37行目と、43-45行目も同様です。
  • 55行目:トークンチェックのためのトークン*を埋め込んでいます。

ベーステンプレートの作成

今回のベース(レイアウト)テンプレートはホームページビルダー17で作成しました。ホームページビルダーはテンプレートが豊富に用意されていますので、デザインの苦手な人(私?)には重宝します。

app/view/layouts/hpb.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title></title>
{{ HTML::style('hpb/hpbparts.css') }}
{{ HTML::style('hpb/container_9H_2c_top.css') }}
{{ HTML::style('hpb/main_9H_2c.css') }}
{{ HTML::style('hpb/user.css') }}
{{ HTML::style('hpb/table.css') }}
</head>
<body id="hpb-template-09-08-01" class="hpb-layoutset-02">
<div id="hpb-skip"><a href="#hpb-title">本文へスキップ</a></div>
<!-- container -->
<div id="hpb-container">
 <!-- header -->
 <div id="hpb-header">
 <div id="hpb-headerMain">
 <h1>WinRoadのマイコレクション</h1>
 </div>
 <div id="hpb-headerLogo"><a href="#">WinRoad</a></div>
 </div>
 <!-- header end --><!-- inner -->
 <div id="hpb-inner">
 <!-- wrapper -->
@yield('content')
<!-- navi -->
 <div id="hpb-nav">
 <h3 class="hpb-c-index">contents</h3>
 <ul>
 <!--<li id="nav-toppage"><a href="#"><span class="ja">トップページ</span><span class="en">top&nbsp;page</span></a>-->
 <li id="nav-toppage">{{ HTML::link('collection','トップページ') }}</li>
 <li id="nav-profile"><a href="#"><span class="ja">新規作成</span><span class="en">profile</span></a>
 <li id="nav-schedule"><a href="#"><span class="ja">スケジュール</span><span class="en">schedule</span></a>
 <li id="nav-reoprt"><a href="#"><span class="ja">活動報告</span><span class="en">report</span></a>
 <li id="nav-information"><a href="#"><span class="ja">ご案内</span><span class="en">information</span></a>
 </ul>
 </div>
 <!-- navi end --><!-- aside -->
 <div id="hpb-aside">
 <div id="banner">
 <h3 class="hpb-c-index">バナースペース</h3>
 <ul>
 <li><a href="#" id="banner-schedule"><span class="ja">スケジュール</span><span class="en">schedule</span></a>
 <li><a href="#" id="banner-admission"><span class="ja">入会ご案内</span><span class="en">admission</span></a>
 <li><a href="#" id="banner-blog"><span class="ja">代表ブログ</span><span class="en">blog</span></a>
 </ul>
 </div>
 <div id="associationinfo">
 <h3>WinRoad</h3>
 <p>〒163-0000<br>
 東京都○○区○○○1-2-3</p>
 <p>TEL 03-1234-0000</p>
 </div>
 </div>
 <!-- aside end -->
 </div>
 <!-- inner end --><!-- footer -->
 <div id="hpb-footer">
 <div id="hpb-footerMain">
 <p>copyright&copy;20XX&nbsp;WinRoadのマイコレクション&nbsp;all&nbsp;rights&nbsp;reserved.</p>
 </div>
 </div>
 <!-- footer end -->
</div>
<!-- container end --></body>
</html>
  •  8-12行目:ホームページビルダーで作成したスタイルシートをpublic/hpbフォルダに保存しています。そのスタイルシートにリンクを張っています。※尚、HTMLクラスですが、ちょっと前のバージョンでは、Htmlでした。Html::style()では、エラーになりますので、注意して下さい。
  • 28行目:この箇所に、上記のcreate.blade.phpが埋め込まれます。

ブラウザで確認してみましょう。

laravel4_074

尚、Laravel4でホームページビルダーのテンプレートを使う方法は別の機会にご紹介します。

« »

コメントを残す

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