2017-10-26 3 views
0

Ich versuche es so zu machen, dass das Admin-Panel meiner Website automatisch eine Dropdown-Liste für eins zu eins Beziehungsfelder ausspuckt ...Gibt es eine Möglichkeit, ein Auswahlfeld mit allen möglichen Eins-zu-Eins-Beziehungen in Laravel zu füllen?

Ich weiß, Drop-Downs sind so in Blade-Vorlagen gemacht .. das Array in diesem Format zu füllen ... Irgendwelche Ideen

.
{{ Form::select('list', ['Value' => 'Display']) }} 

Also brauche ich nur eine Möglichkeit, die Eloquent Abfrage hinzufügen? Gibt es einen Out-of-the-Box-Weg, dies zu tun? Ich kann keine Dokumentation darüber in den Laravel Forms & eins zu eins Dokumentation finden ...

Ich könnte mir vorstellen, ich könnte so etwas tun, und durch die Magie von Laravel würde es funktionieren ...

{{ Form::select('list', MyModel::where('enabled', true)->pluck('title', 'id')) }} 

Gerade jetzt ich tun dies, indem in der Liste der Ansicht vorbei, aber ich frage mich, ob es eine einheimische Art und Weise ist, es zu tun ...

public function get_option_list() 
    { 
    return MyModel::where('enabled', true)->pluck('title', 'id'); 
    } 

    public function create() 
    { 
    return view('admin.myview.create')->with('list', $this->get_option_list()); 
    } 

und Klinge ...

{{ Form::select('list_id', $list) }} 

Ich benutze Laravel 5.3.

+0

Haben Sie versucht, '{{Form: : select ('size', MyModel :: where ('aktiviert', true) -> get())}} '? Was war das Ergebnis? – Camilo

+0

Gab einen Fehler, weil das Blade-Formular MyModel nicht verwendete. Ich denke, ich könnte es benutzen ... – Rick

+0

Ich denke, du machst das richtig. Wenn Sie jedoch das Modell an Blade übergeben möchten, können Sie dies https://stackoverflow.com/questions/29007639/laravel-5-call-a-model-function-in-a-blade-view überprüfen –

Antwort

2

Sie es richtig machen, außer dass Sie es

public function get_option_list() 
    { 
    return MyModel::where('enabled', true)->pluck('title', 'id')->toArray(); 
    } 

Alles hier verpasst bleibt gleich

public function create() 
    { 
    return view('admin.myview.create')->with('list', $this->get_option_list()); 
    } 

Und Ihre Klinge

{{ Form::select('list_id', $list) }} 
Verwandte Themen