LoginSignup
4
7

More than 5 years have passed since last update.

collectionを使ってセレクトボックスのフォームをつくる

Posted at

使うもの

  • Formというファサード
  • pluck()というcollectionメソッド

手順

テーブルからデータを取得する

Eloquentモデルからデータを取ってくる想定

$plucked_categories = $this->category->all()->pluck('category_name', 'id');

POINT: pluck()でデータを整形する

pluck()は、collectionのメソッドの1つで
第1引数をvalue、第2引数をkeyとした配列を返してくれる

ここではセレクトボックスを作るのでそこで使う値を得る必要がある

Formファザードを使うと以下のHTMLが生成されるので、それを想定して引数を指定する

<select>
 <option value="key1">value1</option>
 <option value="key2">value2</option>
 <option value="key3">value3</option>
</select>

Formを作る

以下を書くとセレクトボックスのフォームができる

{!! Form::open(['url' => /hoge, 'method'=>'PUT']) !!}
        <div class="form-group">
            {!! Form::label('category', 'カテゴリ:') !!}
            {!! Form::select('category', $plucked_categories, $article->category_id, ['class' => 'form-control']) !!}
        </div>
        <div class="form-group">
            {!! Form::submit('送信', ['class' => 'btn btn-primary form-control']) !!}
        </div>

{!! Form::close() !!}

ちなみに
From:select()の引数は以下を渡す
第1引数: name要素
第2引数: セレクトボックスの要素
第3引数: デフォルト値
第4引数: classとかidとか

先輩のお知恵を借りて得た知恵٩(ˊᗜˋ*)و

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