WinRoadのLaravel4初心者講座

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

Winroad徒然草の管理人がお届けします
カスタムマクロ

カスタムマクロ

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

カスタムマクロ機能を使うとFormクラスのヘルパーを簡単に定義することができます。

Form::macroの第1引数は、マクロ名、第2引数にクロージャー(無名関数)を登録します。そして、登録したカスタムマクロは、Form::マクロ名で実行することができます。

それでは、簡単にご紹介しましょう。まず、コントローラーでカスタムマクロを登録します。

public function getIndex(){
 Form::macro('h1',function(){
 return '<h1>';
 });
 Form::macro('h1End',function(){
 return '</h1>';
 });
 $animal=['Cats'=>['leopard'=>'Leopard'],
 'Dogs'=>['sppanies'=>'Spaniel']];
 return View::make('home.index',compact('animal'));
 }

上記は、単純にForm::h1で、h1開始タグを生成し、Fom::h1Endでh1終了タグを生成します。

ビューファイルで上記カスタムマクロを使用してみます。

@extends('layout')
 @section('content')
 {{Form::open()}}
 {{Form::h1()}}
 {{Form::select('animal',$animal)}}
 {{Form::submit('送信')}}
 {{Form::h1End()}}
 {{Form::close()}}
 @stop

下記のようにForm::h1からForm::h1Endまでの間が<h1>タグで囲まれているのがわかると思います。

2014-06-09 12-08-15

上記のように、コントローラ内でカスタムマクロを登録してもいいのですが、カスタムマクロ専用のファイルを作成して、それを読み込むようにした方が使いやすいと思います。

尚、カスタムマクロの詳細な使い方は、実践編の「フォームマクロ」をご参照ください。

« »

コメントを残す

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