2016-04-27 33 views
2

我試圖從數據庫加載我的選擇,我的值設置正確,但是ID加載不正確:如何從數據庫中加載選項的id Laravel 5.1

控制器:

​​

查看:

{!! Form::select('country_id',$country_list,null,['class'=>'form-control']) !!} 

數據庫:

"1"=>"USA" 
"2"=>"IRAN" 
--> "5"=>"ENGLAND" <-- 

加載瀏覽器:

"0"=>"Please Select" 
"1"=>"USA" 
"2"=>"IRAN" 
--> "3"=>"ENGLAND" <-- 

檢查元素結果:

<select class="form-control" name="country_id"> 
    <option value="0" selected="selected">Please Select...</option> 
    <option value="1">USA</option> 
    <option value="2">IRAN</option> 
    <option value="3">ENGLAND</option 
</select> 

我需要在數據庫選項ID同樣爲ID列

+0

請發表您的前端代碼 –

+0

瀏覽器的HTML代碼? –

+0

是的。你可以嗎? –

回答

1

array_merge重新索引合併的數組,這就是你的問題。

http://php.net/manual/en/function.array-merge.php 「使用數字鍵輸入數組中的值將使用從結果數組中的零開始的遞增鍵重新編號。」

爲了避免使用

$country_list = [0 => 'Please Select...'] + $country_list->toArray(); 

或者只是:

$country_list = contry::lists('name','id')->toArray(); 
$country_list[0] = 'Please Select...'; 
1

array_merge將覆蓋鍵,以便使用加號(+)相結合陣列。我認爲這將解決您的問題:

$country_list = array('0' => 'Please Select...') + $country_list->toArray(); 
1

您與陣列合併沒有錯誤的位置:

$country_list = array_merge(array('0' => 'Please Select...'), $country_list->toArray());

你應該做的,如:

$country_list = array('0' => 'Please Select...') + $country_list->toArray();

不覆蓋鍵。

相關問題