###LaravelのVersion
$ php artisan --version
Laravel Framework 6.20.12
#やりたいこと
"選択して下さい"の様なoption(尚且つvalueはnull)を含んだselectboxを作りたい。
まずはパッケージのインストール。
$composer require laravelcollective/html:6.*
これでFormファサードが使えるようになり、最終的にこの形になった。
sample.blade.php
{{ Form::select('sample_id', \App\Sample::select('id', 'sample_name')->where('user_id', Auth::id())->get()->pluck('sample_name', 'id')->prepend("選択して下さい", ""), $sample_id) }}
SampleController.phpのメソッド
~
public function sample($sample_id = null) {
~
工夫した点としては、Auth::id()を使ってユーザ固有のsampleを取り出せるようにしたことと、
Form::select()の第三引数はselectboxの初期選択位置なので、sample_idとし、
Controllerの引数のデフォルト値をsample_idとすることで、初期選択は未選択でも既に登録されてる値でも対応できるようにした。
pluck()がいるのか微妙だし、この一行少し長いなと思ったり。
まだまだ勉強が必要です。
参考:
Laravel5.4でFORMファサードを利用する方法
https://qiita.com/FrogWoman/items/1fb35cf46181b6b7d3be