2016-03-23 10 views
2

Ich möchte dynamische Dropdown-Liste auf meiner Registrierungsseite hinzufügen, aber ich weiß nicht, wie es geht, weil ich neu mit Laravel bin.Add dynamische Dropdown-Liste auf Laravel 5.2 Registrierung

Ich weiß nicht, wo ich anfangen soll.

Ich möchte Liste 2 drop to put down auf Anmeldeformular

bekommen wir den Wert aus einer Tabelle

erste ist "Gruppe" Gruppe bestehen aus: 1. Administrator 2. Benutzer 3 Gast

Sekunde ist "Abteilung" (deaktiviert) Wenn die erste Dropdown-Liste Administrator oder Gast ist, deaktivieren Sie die zweite Dropdown-Liste. Aber wenn wir Benutzer wählen, dann die Abteilung Drop-down aktivieren und erhalten die Daten aus der Abteilung Tabelle.

+1

Geben Sie Ihren Code und was Sie in der Dropdown-Liste anzeigen möchten? – shuvrow

+0

Wie viele Dropdown-Stufen möchten Sie? –

+0

Ich habe meine Frage bearbeiten @shuvrow und ich möchte verwenden 2 Ebene Drop-down in es – phenom

Antwort

0

Try this:

Sie zum Beispiel zur Länderliste wollen dynamisch in Anmeldeformular.

Kontroller

class YourController extends Controller { 

    protected $countryArray; 

    public function __construct() { 
     $this->countryList = ['' => 'Select Country'] + Country::lists('name', 'id')->all(); 
    } 

    public function create() { 

     $countryList = $this->countryList; 
     return view('frontend.registration', compact('countryList')); 
    } 
} 

In Vorlage

<select id="country_id" name="country_id" class="form-control"> 
    <option value="">Select Country</option> 
    @foreach ($countryList as $key => $country) 
    <option value="{!! $country['id'] !!}" !!}>{!! $country['name'] !!}</option> 
    @endforeach 
</select> 
+0

Ich weiß nicht, wie man auf AuthController setzen. Es tut mir leid, aber ich bin wirklich neu dabei. – phenom

+0

Ich denke du musst zuerst Laravel Dokumentation lernen und dann den Code implementieren. –

+0

immer noch tun. aber ich verstehe nicht über Authentifizierung und wie man es anpasst. Aber, richtig, ich versuche es zu programmieren, damit ich meinen Code zeigen kann. danke @php – phenom

2

Der beste Weg, um es meiner Meinung nach zu tun ist, einen Controller und ein Modell zu erstellen.

php artisan make:controller YOUR_CONTROLLER_NAME_HERE 

php artisan make:model YOUR_MODEL_NAME_HERE 

Nachdem Sie das tun, dass es sehr einfach sein sollte.

Eine weitere schöne Bibliothek nach unten zu ziehen, ist

"illuminate/html": "5.*" 

in Ihrem composer.json im erfordern Setzen dass {} Abschnitt.

Dann müssen Sie die Service-Provider in config/app.php unter Anbietern Abschnitt wie folgt hinzuzufügen:

Illuminate\Html\HtmlServiceProvider 

Und als letzter Teil diese beiden Zeilen in der config/app.php unter Aliase Abschnitt eingeben :

'Form'=> 'Illuminate\Html\FormFacade', 
'HTML'=> 'Illuminate\Html\HtmlFacade' 

sind nun Ihr Modell und Ansicht Fassade in Ihrem Controller an der Spitze wie diese

use App\MyModel; 
use Illuminate\Support\Facades\View; 

In Ihrem Konstruktor müssen Sie Ihr Modell so in Ihren Controller injizieren.

private $myModel; 
__constructor(MyModel $myModelParameter) { 
    $this->myModel = $myModelParameter; 
} 

Jetzt in Ihrem Controller in Ihrer Call-Funktion (zum Beispiel erstellen()) so etwas wie diese hinzufügen.

public function create() { 
    $myModelList = $this->myModel->lists('name', 'id'); 
    return View::make('myController.create')->with(compact('myModelList')); 
} 

Und jetzt endlich auf die HTML/Vorlage-Datei. In /resources/views/myController/create.blade.php zum Beispiel hinzufügen

@extends('app') 

    @section('content') 

     {!! Form::open(['url' => 'myController/create', 'method' => 'POST']) !!} 
     @include('myController.partials.form', ['submitButtonText' => 'Create myController Item']) 
     {!! Form::close() !!} 

@endsection 

Jetzt in Ihrem neuen Ordner namens/resources/view/MyController/partials hinzufügen form.blade.php

<div class="form-group"> 
    {!! Form::label('myModel_id', 'MyModel Selector :') !!} 
    {!! Form::select('myModel_id', $myModelList, null, array('id' => 'myModel_id', 'class' => 'form-control input-sm')) !!} 
</div> 

<div style="clear:both;"><br /></div> 

<div class="form-actions"> 
    <div class="form-group"> 
    {!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!} 
    </div> 
</div> 

Diese wie viele Schritte scheinen mag, aber es macht alles wirklich sauber, besonders wenn dein Projekt anfängt groß zu werden. Das funktioniert auch für deine edit.blade.php Du erstellst einfach eine edit.blade.php Datei und fügst das Formular ein. Da Sie Modelle verwenden, werden die richtigen Einstellungen für das Modell erkannt und die Werte auf die gleiche Weise abgerufen. Natürlich kannst du auch anspruchsvollere Sachen machen, aber ich empfehle dir, die kostenlosen Starter Videos auf Laracasts anzuschauen. Es wird dir auch so etwas zeigen.

Wenn Sie nicht weiterkommen lassen Sie mich wissen und wir können auf diese Antwort erweitern.