34
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?