2016-04-25 16 views
1

Ich habe ein Modell namens "Benutzer". Ich möchte "Passwort" -Feld von Eloquent aus einer anderen Tabelle, und wenn Benutzer die user :: all() -Methode aufruft, kommen alle ausgewählten Felder aus verschiedenen Tabellen im Ergebnis. Wie kann ich das tun?laravel use field in Eloquent Modell aus einer anderen Tabelle

Ergebnisse werden nicht mit() angezeigt.

Antwort

4

mein Problem gelöst durch die Verwendung von $ Anhängen in Eloquent-Modell.

mein Code:

class User extends Eloquent { 
protected $table = 'user'; 
protected $attributes = ['password']; 
protected $appends = ['password']; 
public function getPasswordAttribute() 
{ 
    return $this->getPAsswordMethod(); 
} 
} 
3

Ihre Frage ist extrem Board und Borderline unbeantwortbar, aber ich werde Ihnen eine Board-Lösung geben.

Sie können Beziehungen zu anderen Tabellen über die von Ihnen erstellten Modellobjekte herstellen. Stellen Sie sich vor, Sie haben eine Passwort-Tabelle, die dem Benutzer gehört.

User-Modell:

public function password() 
{ 
return $this->hasOne(Password::class, 'FK', 'PK'); 
} 

Sie jetzt Benutzer tun können :: mit ('password') -> get ([ 'Feldname']); und das wird Ihnen alle Passwörter geben, die die oben genannte Beziehung zu einem Benutzer haben.

+0

Danke für die Antwort, habe ich 2 Datenbank von zwei verschiedenen Verbindungen, und will nicht mit() – Ehsan

+0

@ehsan verwenden, wobei in diesem Fall müssen Sie die andere Datenbank abfragen und speichern Sie das Ergebnis als Variable und übergeben Sie es dann in Ihrer Abfrage. Wenn die Tabellen identisch sind und die Schlüssel teilen, können Sie sich die Laravels-Erfassungsmethoden ansehen – ExohJosh

Verwandte Themen