簡體   English   中英

Laravel如何從數據庫中填充選擇框

[英]Laravel how to populate select box from database

我有一個存儲國家列表的數據庫表,現在我試圖以下拉形式獲取國家列表,但是不工作,也許我錯過了什么。這是我的控制器代碼

` public function details($id){
        //fetch post data
        //$post = Post::find($id);

        $country_options = Country::pluck('country', 'id');
        $country_options = DB::table('regions')->orderBy('country', 'asc')->pluck('country','id');

        //pass posts data to view and load list view
        return view('dashboard')->with('country_options',$country_options);

    }`

並且在我的表單中回顯下拉列表的代碼看起來像這樣`

@foreach($countries as $country)'+
               '<option value="{{ $country->id }}"> {{ $country->country }}</option>'+
               '@endforeach'+`

我的路線看起來像這樣

Route::get('/Business', 'BusinessController@details')->name('Business');

但我不斷收到此錯誤消息

Undefined variable: countries (View: C:\xampp\htdocs

已經做了研究,但無法解決問題。 任何幫助將通過適當的文檔/解釋感謝。謝謝

您的錯誤是您將一個變量名稱傳遞給您的視圖並嘗試使用其他名稱進行讀取。 我為你做了一些簡單的例子。 這里我的表是“Pais”(葡萄牙語中的“Country”),並使用clorure路由作為回調函數。 (Lavarel 5.4)

路線(web.php):

Route::get('/test', function () {
    $countries = \App\Pais::all();
    return view('test_stackoverflow')->with(['countries' => $countries]);
});

查看(test_stachoverflow.blade.php):

<select name="countries" id="countries">
  @foreach($countries as $country )
    <option value="{{ $country->id }}">{{ $country->name }}</option>
  @endforeach
</select>

結果


另一個選擇,如果你想繼續使用pluck方法:

路線(web.php):

Route::get('/test', function () {
  /* $countries = \App\Pais::pluck('name','id'); */
  // or
  $countries = DB::table('pais')->pluck('name','id');
  return view('test_stackoverflow')->with(['countries' => $countries]);
});

查看(test_stachoverflow.blade.php):

  <select name="countries" id="countries">
    @foreach($countries as $id => $country )
      <option value="{{ $id }}">{{ $country }}</option>
    @endforeach
  </select>

兩種解決方案在生成的HTML中都具有相同的結果。

希望這可以幫到你! 最好的祝福。

您從控制器而不是countries地區傳遞country_options

嘗試這個

@foreach($country_options as $country)
    <option value="{{ $country->id }}">
        {{ $country->country }}
    </option>
@endforeach

首先,如果你想要所有類別,你不需要$ id

將控制器代碼與:

public function details(){
    $country_options = Country::All();
    return view('dashboard',compact('countries'));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM