LoginSignup
5
5

More than 5 years have passed since last update.

【RailsユーザのためのPHP/Laravel】form_for的なのを使いたい

Last updated at Posted at 2015-11-02

Laravel芸人見習いのすろっくさんですよ! フォームヘルパーつかいたいですね!

フレームワーク芸人たるもの、直接ビューを書いてもいい場合は書くわけですが、当然ビューヘルパーは使いたいですね。Railsでいうform_for、form_tag、input_tagみたいなああいうのです。

ですが、Laravelは4までは組み込まれていたんですが、5からは別パッケージになってしまったみたいです。時代の流れからか、WAFがJsonかえしてくれりゃーええでっていう時代なんで、まあ流れ的に仕方ないのかもしれませんが。

あまりモノシリックにしないのが世の流れなのかもですね!

それはさておき、わざわざReactとかやりたくねーなーっていうサーバサイドエンジニアもいると思うんで、フォームヘルパーがちゃんと用意されています。laravelcollective/htmlってのがそれです。

デフォルトではつかえないので、composerつかっていれましょう。

注意点ですが、Laravel5がリリースされたばっかの記事をみていると、illuminate/htmlをインストールさせる記事がちらほらあります。このパッケージはメンテされてないのでつかっちゃだめです。illuminate/htmlをインストール!とか書いてあったらそのサイトは信じちゃダメです! 約束だよ!

LaravelCollectiveを使う

インストールはこんぽーさーさんで終わりです。らくらく。

composer require laravelcollective/html

インストールできたら設定をconfig/app.phpに書きます。

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

上のprovidersをプロバイダ、aliasesをファサードというらしいです。

大体のフレームワークに言えることですが、なんか新しい用語でてきても初めはぶっとばしていかないと楽しくないです。仕事で使うなら会話で「プロバイダってなに?」「ファサードってなに?」ってふんわり覚えておくくらいは必要ですが、技術を趣味でいじるときに細かいところこだわるとしんどくなるんで、詳細はすっ飛ばします。ただ、Laravelではモジュールを追加してヘルパーいれるときはここに追記が必要なようです。

これでフォームヘルパーが使えるようになりました!

あとはresource/views以下のbladeとかに

{!! Form::label('title', 'Title:') !!}
{!! Form::text('title',[わたしたいパラメータのvalueなければnull], ['class' => '[クラス名]']) !!}

みたいに書くとヘルパー使えます。よかったね!

5
5
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
5
5