2016-04-27 18 views
2

Option von id aus der Datenbank laden, ich aus der Datenbank meine Optionen ausprobiert, setzen Sie meinen Wert richtig zu laden, aber id falsch geladen:Wie in Laravel 5.1

Controller:

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

Ausblick:

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

Datenbank:

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

laden in Browser:

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

Elemente Inspizieren Ergebnis:

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

I Option id gleiche ID-Spalte in der Datenbank

+0

bitte posten Sie Ihre Front-End-Code –

+0

Browser HTML-Code? –

+0

ja bitte. Können Sie? –

Antwort

1

array_merge indiziert das gemischte Array neu, das ist also dein Problem.

http://php.net/manual/en/function.array-merge.php "Werte im Eingabearray mit numerischen Schlüsseln werden mit steigenden Schlüsseln neu nummeriert, beginnend bei Null im Ergebnisarray."

Um sicherzustellen, dass die Verwendung

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

Oder einfach zu vermeiden:

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

array_merge benötigt außer Kraft setzen der Schlüssel so verwenden Plus (+) zu kombinieren, das Array. Ich denke, es ist Ihr Problem zu lösen:

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

Sie haben hier Fehler mit Array-Fusion:

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

Sie sollten wie tun:

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

nicht Tasten außer Kraft setzen .