LoginSignup
34
38

More than 5 years have passed since last update.

Laravel5.4でFORMファサードを利用する方法

Last updated at Posted at 2017-06-23

FORMファサード

Formファサードのレシピ

Laravel5では標準でインストールされない

Laravel 4では標準で組み込まれていたのですが、Laravel 5 からは別パッケージになり、ユーザーコミュニティーによってメンテナンスされるようになりました。

初めてのLARAVEL 5.1 : (16) FORMの作成

必要なもの

composerが必要です。
多分Laravel使ってる方は既にインストールしているかと思うのでインストール方法は割愛します。
インストールしていない方は別途調べて下さい。

Composerをインストールしてみたとかよいかも

試した環境

  • CentOS7
  • Laravel5.4
  • Composer 1.4.2
  • PHP7.0

方法

LaravelCollective公式サイトに記載してありました。
公式は英語で書かれているので、補足も交えて日本語でここに手順を書いておこうと思います。

LaravelCollective公式

スクリーンショット_2017-06-23_15_44_22.png
上記のリンク先にあるコードをそのまま記載します。

パッケージをComposerからインストール

cd Laravelプロジェクト
composer require "laravelcollective/html":"^5.4.0"

composer require laravelcollective/html でもいいかと。

すると インストールが完了し、composer.jsonlaravelcollective/html項目が追加されます。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.4"
    },

ProviderとAliaseを登録

config/app.php のProviderとAliaseに追加します。

vim config/app.php

Providerを追加

  'providers' => [
    // ...
    Collective\Html\HtmlServiceProvider::class,
    // ...
  ],

Aliaseを追加

   'aliases' => [
    // ...
      'Form' => Collective\Html\FormFacade::class,
      'Html' => Collective\Html\HtmlFacade::class,
    // ...
  ],

これで使えるようになります。

ついでに

FORMファサードに関するメモを残しておこうと思います

{{}}と{!!!!}の違い

{{ }}は エスケープ処理あり
{!! !!}は エスケープ処理なし
基本的にエスケープ処理なしを使うようです

FORMファサードとヘルパ関数を一緒に使う場合

例えばテキスト入力欄

{!!Form::text('test_name', 'FROG', ['class' => 'test'])!!}

この場合、第2引数のFROGがvalue値になるのですが、
valueにoldヘルパを使いたい場合

{!!Form::text('test_name', old('test_name'), ['class' => 'test'])!!}

になる

と思ったけど、違うかもしれない..
誰か分かる方が居ましたら教えて下さい....

属性の増やし方

例えばテキストの場合

{!!Form::text('test_name', 'FROG', ['class' => 'test_name','ID' => 'test'])!!}

これだと
第一引数がname属性
第二引数がvalue属性
なのですが、属性を増やしたい場合は
第三引数に追加が可能です

labelを使う場合

上記のようにIDを追加可能ですが
labelのforと結びつけたい場合はtextの方にIDを書かなくても大丈夫になっています。

labelとtextの第一引数を同じ値にする必要があります

{!!Form::label('test_name','文字')!!}

{!!Form::text('test_name', 'FROG', ['class' => 'test_class'])!!}

上記のように書くと下記のようになる。

<label for="test_name">文字</label>

<input class="test_class" name="test_name" type="text" value="FROG" id="test_name">

nameとidが必然的に同じになるということですね..

34
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
38