web-dev-qa-db-ja.com

laravelフォームで選択したオプションを設定する

このhtmlのように選択した値を指定する必要があります。

<select name="myselect" id="myselect">
 <option value="1">Item 1</option>
 <option value="2" selected='selected'>Item 2</option>

laravelフォームでこれを達成するにはどうすればよいですか?

18
Min Khant Lu

このパッケージを使用してドキュメントを確認してください:

https://laravelcollective.com/docs/5.2/html#drop-down-lists

htmlから、このマークを使用する必要があります

{!! Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S'); !!}
6
Raymond Cheng

あなたのことを話している人はすべて{!! Form::select() !!}を使用しますが、必要なのは単純な単純なHTMLを使用することだけです。

<select name="myselect">
@foreach ($options as $key => $value)
    <option value="{{ $key }}"
    @if ($key == old('myselect', $model->option))
        selected="selected"
    @endif
    >{{ $value }}</option>
@endforeach
</select>

old()関数は、フォームを送信して検証が失敗したときに役立ちます。そのため、old()は以前に選択した値を返します。

38
lucasvscn

3番目の引数を渡すことにより、デフォルトオプションを設定する必要があります。

{{ Form::select('myselect', [1, 2], 2, ['id' => 'myselect']) }}

ドキュメントを読むことができますここ

9
Chonchol Mahmud

このようにすることができます。

<select class="form-control" name="resoureceName">

  <option>Select Item</option>

  @foreach ($items as $item)
    <option value="{{ $item->id }}" {{ ( $item->id == $existingRecordId) ? 'selected' : '' }}> {{ $item->name }} </option>
  @endforeach    </select>
7

別の通常の簡単な方法これは、選択ボックスにオプションがほとんどない場合に適しています

<select name="job_status">
   <option {{old('job_status',$profile->job_status)=="unemployed"? 'selected':''}}  value="unemployed">Unemployed</option>
   <option {{old('job_status',$profile->job_status)=="employed"? 'selected':''}} value="employed">Employed</option>
</select>
4
Alupotha

選択したオプションの設定はlaravel形式で非常に簡単です:

{{ Form::select('number', [0, 1, 2], 2) }}

出力は次のようになります。

<select name="number">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2" selected="selected">2</option>
</select>
3
Hiren Makwana
            @foreach ($categories as $category)
             <option value="{{$category->id}}" 
               @foreach ($posts->postRelateToCategory as $Postcategory)
                 @if ($Postcategory->id == $category->id)
                 {{'selected="selected"'}}
                 @endif 
               @endforeach >
              {{ $category->category_name }} </option>               
            @endforeach    
1

ここに他のいくつかの答えをエコーするために、5.6で使用したコードはこれです

{{ Form::select('status', ['Draft' => 'Draft', 'Sent' => 'Sent', 'Paid' => 'Paid'], $model->status, ['id' => 'status']) }}

LaravelCollectiveのForm Helperを使用できるようにするために、 https://laravelcollective.com/docs/master/html#drop-down-lists を見てみました。

また、プロジェクトで使用できるように、依存関係もcomposer要求する必要がありました。

composer require "laravelcollective/html":"^5"

最後に、config/app.phpを変更し、$aliases配列に以下を追加しました

    'Form' => Collective\Html\FormFacade::class,

https://laravelcollective.com/docs/master/html 上記のいずれかが機能しなくなった場合は、相談する必要があります。

1
MrMesees

限られたオプションでこれを試すこともできます:

          <select class="form-control required" id="assignedRole">
            <option id = "employeeRole" selected ="@if($employee->employee_role=='Employee'){'selected'}else{''} @endif">Employee</option>
            <option id = "adminRole" selected ="@if($employee->employee_role=='Admin'){'selected'}else{''} @endif">Admin</option>
            <option id = "employerRole" selected ="@if($employee->employee_role=='Employer'){'selected'}else{''} @endif">Employer</option>
          </select>
0
Nikunj V

モデル間にEloquent Relationshipがある場合、次のようなことができます。

@foreach ($ships as  $ship)
<select name="data[]" class="form-control" multiple>
    @foreach ($goods_containers as  $container)
        <option value="{{ $container->id }}"
                @if ($ship->containers->contains('container_id',$container->id ) ))
                selected="selected"
                @endif
        >{{ $container->number}}</option>
    @endforeach
</select>
@endforeach
0

このコードを貼り付けるだけで、必要な出力が得られます。

 {{ Form::select ('myselect', ['1' => 'Item 1', '2' => 'Item 2'], 2 , ['id' =>'myselect']) }}` `
0
DILEEP THOMAS