2015-07-23 16 views
5

Używam Serverfireteam LaravelPanel (który używa zofe/rapyd-laravel ). Stworzyłem kontroler crud dla jednostki. Ta encja ma klucz obcy do innej tabeli. Teraz chcę pokazać autouzupełnianie dla tego klucza obcego, ale pokazuje tylko puste pole wyboru.Dodawanie obiektu klucz obcy klucz serwer firewall/panel

mój kod Kontroler wyglądać następująco:

public function edit($entity){ 

    parent::edit($entity); 
    $this->edit = \DataEdit::source(new \App\Regal()); 
    $this->edit->add('bezeichnung', 'Bezeichnung','text'); 
    $this->edit->add('nummer', 'Nummer','text'); 
    $this->edit->add('maxPaletten', 'Max Paletten je Ebene','text'); 
    $this->edit->add('anzahlEbenen', 'Anzahl Ebenen','text'); 

    $this->edit->add('kunde_id','Kunde','select')->options(\App\Kunde::lists("name", "id")); 


    return \View::make('regale.editPanel', array(
     'title'   => $this->entity , 
     'edit' => $this->edit 
     )); 


}  

A mój model pliki:

class Kunde extends Model { 

protected $table = 'kunden'; 
public function listPaletten(){ 
    return $this->hasMany('App\Models\Palette'); 
} 
public function listAdressen(){ 
    return $this->hasMany('App\Models\Adresse'); 
} 
public function listRegale(){ 
    return $this->hasMany('App\Models\Regal'); 
} 
public function listArtikel(){ 
    return $this->hasMany('App\Models\Artikel'); 
} 
} 

..

class Regal extends Model { 

protected $table = 'regale'; 

public function kunde(){ 
    return $this->belongsTo('App\Models\Kunde');   
} 
} 
+1

można podać jakiś przykład wyjście z '\ App \ Kunde :: lists (" name "," id ")'? – maxwilms

+1

Dane wyjściowe: obiekt (Illuminate \ Support \ Collection) # 365 (1) {["items": protected] => array (2) {[1] => string (7) "cookmal" [2] = > string (8) "schaumal"}} –

+2

Wired! Zgodnie z dokumentacją Laravel metoda 'lists()' powinna zwrócić tablicę, a nie kolekcję. Prawdopodobnie przesyłanie kolekcji do tablicy pomoże: '\ App \ Kunde :: lists (" name "," id ") -> toArray()'. – maxwilms

Odpowiedz

1

Używasz metody opcji, opcje metoda jest używana do selectbox.

Jak wyjaśniono w document:

autouzupełniania (pola wejściowego z funkcją autouzupełniania pomocą Twitter wpisywanie znaków z wyprzedzeniem i Ajax Funkcje wykorzystujące relation.fieldname i search() metoda)

$this->edit->add('author.fullname', 'Author', 'autocomplete')->search(array('firstname', 'lastname'));